我尝试使用项目文件中的以下代码在C#项目中添加NuGet生成过程作为AfterBuild事件:
2
/ \
/ \
/ \
/ \
7 5
/ \ \
/ \ \
2 6 9
/ \ /
5 8 4
但我在构建输出窗格中收到了一条消息:
<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release'">
<Message Text="**** Starting after-build process= ****" />
<Exec Command="nuget.exe update -self" />
<Copy SourceFiles="$(ProjectDir)bin\release\$(ProjectName).dll" DestinationFolder="$(SolutionDir)Nuget\$(ProjectName)\lib\Net45" />
<Delete Files="$(SolutionDir)Nuget\*.nupkg" />
<Exec Command="nuget.exe pack $(ProjectName).nuspec -Properties "Configuration=Release" -BasePath="$(SolutionDir)Nuget\$(ProjectName)" -OutputDirectory="$(SolutionDir)Nuget"" />
<Message Text="**** After-build process completed ****" />
</Target>
我正在使用NuGet.exe版本3.3.0,并且我引用https://docs.nuget.org/consume/command-line-reference#pack-command作为我的&#39;如何使用&#39;资讯
要查看Visual Studio 2015是否影响了某些事情,我开始从构建输出窗格复制已执行的命令,插入正确的路径并在VS命令提示符中执行它。这失败了同样的评论,所以它似乎是一个NuGet问题。
答案 0 :(得分:0)
我知道现在已经很晚了,但问题似乎是您使用 -BasePath=
作为参数,它应该只说 -BasePath
(注意替换了您的 '= ' 特点)。
参数不是变量并且“赋值”时没有等号——只需将值放在参数名称后面的空格后面,如下所示:
-BasePath "$(SolutionDir)Nuget\$(ProjectName)"
顺便说一句,如果您尝试在(powershell)脚本中使用带有参数的 NuGet.exe,则会出现类似的问题。 See Samuel Lais excellent article about parameters in scripts.