Appveyor nuget分析仪

时间:2017-04-25 12:31:23

标签: c# nuget roslyn-code-analysis appveyor

我试图创造出将Roslyn分析器项目打包到NuGet的好方法。 它需要特定的NuGet包结构,.dll放入\analyzer\,而不是\lib\

为此,我必须致电nuget pack <name>.nuspec,而不是nuget pack <name>.csproj。但是如果我使用nuspec,则会忽略$ version $ tag。

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

2 个答案:

答案 0 :(得分:1)

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

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

nuspec包含一个虚拟<version>标记,实际版本在nuget pack命令中使用%APPVEYOR_BUILD_VERSION%环境变量provided by AppVeyor

指定

答案 1 :(得分:0)

正确的方法是:

  1. 从.csproj
  2. 调用nuget pack .nuspec
  3. 将从Assembly中提取的版本作为参数传递。
  4. 在重建时创建Appveyor更新版本
  5. 配置Appveyor以将.nupkg`s捕获到工件并推送它。
  6. 请参阅https://github.com/leotsarev/hardcode-analyzer作为示例