我正在尝试使用脚本部署到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构建项目。
答案 0 :(得分:4)
打包项目时,nuget将使用当前项目设置,忽略从命令行传递的Configuration选项。例如,对于basepath参数也是如此。
如果您将默认配置更改为release,nuget将使用版本位构建您的包。在.csproj中查找以下内容:
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
并将其更改为:
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>