Appveyor nuget analyser

泪湿孤枕 提交于 2019-12-23 08:58:53

问题


I'm trying to invent good way to pack my Roslyn analyzer projects into NuGet. It requires specific NuGet package structure with .dll put into \analyzer\, not \lib\.

For this to work, I have to call nuget pack <name>.nuspec, not nuget pack <name>.csproj. But if I use nuspec, than $version$ tag gets ignored.

Seems that my only option is to manually update version in .nuspec on every rebuild. What is correct and right way to accomplish this?


回答1:


I just had the same problem. I don't like the idea of adding an after-build instruction to my csproj file (I don't want to build the nuget package every time I compile), so instead I configured an "after build script" in AppVeyor:

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

The nuspec contains a dummy <version> tag, the actual version is specified in the nuget pack command using the %APPVEYOR_BUILD_VERSION% environment variable which is provided by AppVeyor




回答2:


Correct way is:

  1. Call nuget pack .nuspec from .csproj
  2. Pass Version extracted from Assembly as parameters.
  3. Make Appveyor update version on rebuild
  4. Configure Appveyor to capture .nupkg`s to artifacts and push it.

See https://github.com/leotsarev/hardcode-analyzer as example



来源:https://stackoverflow.com/questions/43610749/appveyor-nuget-analyser

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!