当-Build指定时,NuGet包忽略-Prop参数

时间:2013-02-12 16:07:10

标签: build-automation release nuget

我正在尝试使用脚本部署到NuGet。我有以下命令进行实际部署:

nuget pack MyProjection.csproj -Build -Properties Configuration=Release

根据NuGet网站上提供的示例,这是正确的命令行。我注意到一些例子说-Prop而不是-Properties,但我认为这不重要。

然而,NuGet输出:

Attempting to build package from 'MyProject.csproj'.
Building project for target framework '.NETFramework,Version=v4.0'.
Packing files from 'C:\Users\...\MyProjection\bin\Debug'.
Using 'MyProject.nuspec' for metadata.
Successfully created package 'C:\Users\...\MyProject\MyProject.2.2.0.0.nupkg'.

请注意,它是在Debug文件夹而不是Release文件夹中打包文件!

如果我删除-Build设置,它会抓取Release中的文件。第一个问题是:我是否一直在发布我的项目的调试版本?第二个问题是:我如何一起使用这两个命令参数?

如果必须,我将使用MSBuild构建项目。

1 个答案:

答案 0 :(得分:4)

打包项目时,nuget将使用当前项目设置,忽略从命令行传递的Configuration选项。例如,对于basepath参数也是如此。

如果您将默认配置更改为release,nuget将使用版本位构建您的包。在.csproj中查找以下内容:

  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

并将其更改为:

  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>