Где копировать внешние XML файлы Resharper, которые можно найти в Visual Studio

Я создал файл аннотации XML для одной из моих библиотек и хочу сделать его доступным для всех моих проектов без необходимости его копирования в каждой двоичной папке проекта.

Для того, что я прочитал, это можно сделать, скопировав его в папку установки Resharper, но я пробовал несколько мест без успеха.

Я скопировал его в следующих папках:

C:\Users\myuser\AppData\Local\JetBrains\Installations\ReSharperPlatformVs14\ExternalAnnotations\MyCompany

C:\Users\myuser\AppData\Local\JetBrains\ReSharper\vAny\vs14.0\Bin\ExternalAnnotations

Файл xml имеет то же имя, что и dll, который комментирует, но расширение xml. И содержимое похоже на следующее:

<assembly name="Company.Tools.Libs.Logging">
  <member name="M:Company.Tools.Libs.Logging.Interfaces.IBasicLogger.WriteDebug(System.String,System.Object[])">
    <attribute ctor="M:JetBrains.Annotations.StringFormatMethodAttribute.#ctor(System.String)" />
    <argument>"format"</argument>
  </member>
  <member name="M:Company.Tools.Libs.Logging.Interfaces.IBasicLogger.WriteInfo(System.String,System.Object[])">
    <attribute ctor="M:JetBrains.Annotations.StringFormatMethodAttribute.#ctor(System.String)" />
    <argument>"format"</argument>
  </member>
  <member name="M:Company.Tools.Libs.Logging.Interfaces.IBasicLogger.WriteWarning(System.String,System.Object[])">
    <attribute ctor="M:JetBrains.Annotations.StringFormatMethodAttribute.#ctor(System.String)" />
    <argument>"format"</argument>
  </member>
  <member name="M:Company.Tools.Libs.Logging.Interfaces.IBasicLogger.WriteError(System.String,System.Object[])">
    <attribute ctor="M:JetBrains.Annotations.StringFormatMethodAttribute.#ctor(System.String)" />
    <argument>"format"</argument>
  </member>
  <member name="M:Company.Tools.Libs.Logging.Interfaces.IBasicLogger.WriteFatal(System.String,System.Object[])">
    <attribute ctor="M:JetBrains.Annotations.StringFormatMethodAttribute.#ctor(System.String)" />
    <argument>"format"</argument>
  </member>
</assembly>

Что мне здесь не хватает?

UPDATE:

Как @citizenmatt сказал, что мой xml ошибочен, а узлы аргументов должны быть вложены внутри элемента атрибута. Выполнение этого с помощью простого проекта, который я использовал для репликации проблемы, заставляет его работать, но это связано с созданием внешних аннотаций в той же папке, что и dll, и с префиксом .ExternalAnnotation.

Я все еще пытаюсь выяснить, где скопировать его на моей машине, чтобы его выбрал Resharper, не распространяя его по dll.

ОБНОВЛЕНИЕ 2:

После обсуждения с @citizenmatt я решил отправить свои аннотации вдоль dll. У него был хороший момент, добавив его в установочный каталог Resharper, чтобы они исчезли в каждой новой установке, а также не очень интуитивно понятное место. Кроме того, я не смог получить VS, чтобы получить от него свои аннотации.

Ответ 1

Если я правильно помню, я думаю, что он должен находиться в подпапке ExternalAnnotations. Вам также необходимо закрыть и снова открыть свое решение, прежде чем оно будет поднято.

Вы также можете отправить файл рядом с .dll, если он заканчивается на .ExternalAnnotations.xml, например. foo.dll потребуется foo.ExternalAnnotations.dll.

В качестве альтернативы вы можете отправить аннотации в расширение. Это упакован как пакет nuget с пользовательским расположением файлов. Вы можете увидеть проект расширения сообщества для примера файла nuspec (если ваша сборка является общедоступной, вы можете даже захотеть добавить pull прошу!)

Однако приведенный здесь пример XML неверен - элемент argument должен быть дочерним элементом элемента attribute. Он сообщает ReSharper, как построить аргумент, который должен применяться - атрибут ctor дает ReSharper конструктор (и класс), а затем нам нужно передать аргументы этому конструктору - поэтому каждый элемент argument должен быть дочерним элемента attribute. Другими словами:

<member name="M:Company.Tools.Libs.Logging.Interfaces.IBasicLogger.WriteDebug(System.String,System.Object[])">
<attribute ctor="M:JetBrains.Annotations.StringFormatMethodAttribute.#ctor(System.String)">
  <argument>format</argument>
</attribute>