将Resharper 9.2插件部署为dll

时间:2015-10-05 14:19:37

标签: visual-studio-2012 resharper-9.0 resharper-plugins resharper-sdk

对于Resharper 7.1,我们编写了一个Resharper插件 - 放在C:\Users\<UserName>\AppData\Roaming\JetBrains\ReSharper\vAny\Plugins中 夹。在VS 2012中,插件工作没有任何问题。

该插件的目的是分析当前打开的C#文件,并检查我们的公司文件头是否写在页面顶部。如果没有,它将突出显示整个内容。

现在我们切换到Resharper 9.2。我成功编译了由nuget下载的Resharper 9.2 SDK的源代码。但是我没有得到Resharper认可/工作的Resharper Plugin。

插件应该放在哪里有什么变化吗?我读了一些关于创建nuget包的建议 - 但这一步真的是必要的吗?

我想学习如何让插件运行。

2 个答案:

答案 0 :(得分:2)

从R#9开始,简单的xcopy-deployment不再起作用,您需要创建一个NuGet包(如果您不打算发布扩展名,也是如此)。

请参阅R#DevGuide中的Initial InstallationLocal Installation

答案 1 :(得分:2)

在提问之前没有阅读文档的心情不好。 R#文档非常有用。

我是如何解决问题的:

我将项目重命名为&#39;。&#39;在项目和程序集名称中,让我们说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.exe pack Company.MyPlugin.nuspec创建nuget包。将出现一些警告,说明程序集不在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来创建一个packe。将正确的目录添加到R#选项菜单中的Package Sources中,让MyPlugin成功出现在Extensions Manager中 - 这非常酷 - 它正在运行。 :)

我强烈建议您阅读偏离说明。另请查看JetBrains Devguide Extensions Troubleshooting