包装在发布模式下编译的NuGet项目?

有没有办法使用在发布模式下编译的代码创build一个NuGet包? 还是有一些原因,我应该只发布(使本地,在这种情况下)在debugging模式下编译的软件包?

每次我从我的项目目录,我有下面的nuspec文件调用nuget pack ,我只编译在发布模式的代码,它抱怨找不到debugging文件夹中的DLL( "\bin\Debug\SomeProject.dll" )。 如果我在debugging模式下进行编译,这些文件就在那里,它会把它们打包起来。

 <?xml version="1.0"?> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>$id$</id> <version>$version$</version> <authors>$author$</authors> <owners>$author$</owners> <iconUrl>http://somewhere/project.png</iconUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>$description$</description> </metadata> </package> 

你可以这样解决: NuGet.exe pack Foo.csproj -Prop Configuration=Release ( 参考 )。

如果您正在使用生成后事件,并且想要使用“debugging”或“发布”configuration来创build包,则可以像这样设置生成后事件命令行:

 "<path to nuget tools>\NuGet.exe" pack "$(ProjectPath)" -Prop Configuration=$(ConfigurationName) 

要让NuGet在运行nuget pack时自动使用释放模式,请执行以下操作:

  1. 在文本编辑器中打开您的.csproj文件。
  2. find以下行:

     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
  3. 在这一行中,用ReleasereplaceDebug
  4. 保存更改。