Nuget BasePath选项未知'

时间:2016-01-01 20:05:03

标签: msbuild visual-studio-2015 nuget post-build-event

我尝试使用项目文件中的以下代码在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 &quot;Configuration=Release&quot; -BasePath=&quot;$(SolutionDir)Nuget\$(ProjectName)&quot; -OutputDirectory=&quot;$(SolutionDir)Nuget&quot;"  />
    <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问题。

1 个答案:

答案 0 :(得分:0)

我知道现在已经很晚了,但问题似乎是您使用 -BasePath= 作为参数,它应该只说 -BasePath (注意替换了您的 '= ' 特点)。 参数不是变量并且“赋值”时没有等号——只需将值放在参数名称后面的空格后面,如下所示:

-BasePath &quot;$(SolutionDir)Nuget\$(ProjectName)&quot;

顺便说一句,如果您尝试在(powershell)脚本中使用带有参数的 NuGet.exe,则会出现类似的问题。 See Samuel Lais excellent article about parameters in scripts.