Разверните 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.