将Resharper 9.2 Plugin部署为dll



对于Resharper 7.1,我们已经编写了一个Resharper Plugin -它被放置在C:Users<UserName>AppDataRoamingJetBrainsReSharpervAnyPlugins文件夹中。在VS 2012中,这个插件没有任何问题。

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

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

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

我想学习如何让插件运行

从r# 9开始,简单的xcopy-deployment不再工作,您需要创建一个NuGet包(如果您不打算发布您的扩展)

参见《r# DevGuide》中的"初始安装"one_answers"本地安装"章节。

提问前不看文档,心情不好。r#文档非常有帮助。

我如何解决这个问题:

我将项目重命名为a '。’在项目和组件名称中,我们设为Company.MyPlugin。我是nuget的新手,但是我发现我需要在Company.MyPlugin.csproj所在的目录中运行>nuget.exe spec。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="binReleaseCompany.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来创建包。将适当的目录添加到r#选项菜单中的Package Sources中,MyPlugin就会成功地出现在扩展管理器中——这很酷——它正在工作。:)

我强烈建议阅读devguide。

相关内容

  • 没有找到相关文章

最新更新