Appveyor nuget分析仪

我正在努力创造将我的Roslyn分析器项目打包到NuGet的好方法。 它需要特定的NuGet包结构,其中.dll放入\analyzer\ _ \analyzer\ ,而不是\lib\

为此,我必须调用nuget pack .nuspec ,而不是nuget pack .csproj 。 但是如果我使用nuspec ,那么$ version $ tag会被忽略。

似乎我唯一的选择是在每次重建时手动更新.nuspec版本。 什么是正确和正确的方法来实现这一目标?

我刚遇到同样的问题。 我不喜欢在我的csproj文件中添加一个构建后的指令(我不想在每次编译时都构建nuget包),所以我在AppVeyor中配置了“after build script”:

nuget pack "yournuspecfile.nuspec" -Version %APPVEYOR_BUILD_VERSION%

nuspec包含一个虚拟标记,实际版本在nuget pack命令中使用%APPVEYOR_BUILD_VERSION% 提供的%APPVEYOR_BUILD_VERSION%环境变量指定

正确的方法是:

  1. 从.csproj调用nuget pack .nuspec
  2. 将从Assembly中提取的版本作为参数传递。
  3. 在重建时创建Appveyor更新版本
  4. 配置Appveyor以将.nupkg`s捕获到工件并推送它。

以https://github.com/leotsarev/hardcode-analyzer为例

Interesting Posts