Разверните Resharper 9.2 плагин как DLL

Для Resharper 7.1 мы написали плагин Resharper, который был помещен в C:\Users\<UserName>\AppData\Roaming\JetBrains\ReSharper\vAny\Pluginsпапка. В VS 2012 плагин работал без проблем.

Задача плагина - проанализировать открытый в настоящее время файл C# и проверить, написан ли заголовок файла нашей компании в верхней части страницы. Если нет, то будет выделен весь контент.

Теперь мы перешли на Resharper 9.2. Я успешно скомпилировал исходный код с помощью Resharper 9.2 SDK, загруженного nuget. Но я не получаю, чтобы Resharper Plugin распознавался / работал Resharper.

Что-нибудь изменилось, где плагин должен быть размещен? Я прочитал некоторые предложения по созданию пакета nuget - но действительно ли этот шаг необходим?

Я хотел бы узнать, как запустить плагин.

2 ответа

Решение

Плохое настроение, чтобы не читать документацию, прежде чем задать вопрос. Документация по R# очень полезна.

Как я решил проблему:

Я переименовал проект так, что "." в названии проекта и сборки, скажем Company.MyPlugin, Я полностью новичок в Nuget, но я понял, что мне нужно запустить >nuget.exe spec в каталоге, где Company.MyPlugin.csproj расположен. Nuget создаст Company.MyPlugin.nuspec файл, который мне пришлось редактировать. Я удалил некоторые части, так как я не хочу развертывать плагин онлайн.

<?xml version="1.0"?>
<package >
  <metadata>
    <id>Company.MyPlugin</id>
    <version>1.0.0.0</version>
    <title>My Plugin Title</title>
    <authors>Myself</authors>
    <owners>Company</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Some description.</description>
    <copyright>Copyright 2015</copyright>
    <dependencies>
      <dependency id="Wave" version="[3.0]" />
    </dependencies>
  </metadata>
  <files>
    <file src="bin\Release\Company.MyPlugin.dll" target="DotFiles" />
  </files>
</package>

Обратите внимание, что я хочу сделать пакет доступным для R# 9.2, поэтому мне нужна зависимость от Wave 3.0. Где-то я читал, что должна быть зависимость от Resharper 9.2, а где-то было заявлено, что это больше не обязательно. У меня это работало без зависимости от Resharper 9.2.

Создайте пакет nuget с >nuget.exe pack Company.MyPlugin.nuspec, Появятся некоторые предупреждения о том, что сборки не находятся в lib папка. Игнорируйте эти предупреждения.

Это еще не было сделано. Поскольку JetBrains перешел с продукта R# на платформу Resharper, мне пришлось создать так называемый ZoneMarker, В эти дни JetBrains говорит, что пока нет подходящего инструмента, чтобы выяснить, что такое правильный ZoneMarker (см. JetBrains Devguide HowTo ZoneMarker). В качестве временного решения вы можете определить пустой ZoneMarker.

using JetBrains.Application.BuildScript.Application.Zones;

namespace Company.MyPlugin
{
  [ZoneMarker]
  public class ZoneMarker
  {
  }
}

После добавления ZoneMarker я смог скомпилировать сборку и запустить nuget создать пачку. Добавление правильного каталога в меню параметров "Источники пакетов" в R# позволило MyPlugin успешно появиться в Extensions Manager и - это довольно круто - оно работало.:)

Я настоятельно рекомендую прочитать инструктора. Взгляните также на устранение неисправностей расширений JetBrains Devguide.

Начиная с R# 9, простое развертывание xcopy больше не работает, и вам нужно создать пакет NuGet (также, если вы не планируете публиковать свое расширение).

См. Первоначальная установка и Локальная установка в R# DevGuide.

Другие вопросы по тегам