打包时,TeamCity nuget pack步骤缺少文件

时间:2016-07-19 14:41:15

标签: nuget teamcity

我们的第一步是针对.sln文件的MsBuild。我们传入我们的平台和配置,一切都正确构建。

接下来,我们希望NuGet打包使用Octopus Deploy的所有文件。在这一步中,我们指定了所有的.csproj文件(不确定为什么,一切都已构建)

创建的包包含2个文件夹,Content包含所需的所有文件减去bin和Lib文件夹,其中只包含编译的dll项目。它不包括项目中引用的任何其他dll。

2 个答案:

答案 0 :(得分:1)

听起来您可能更容易使用Octopack来处理要部署的NuGet包的创建。

第1步。将Octopack NuGet package安装到可部署应用程序的项目中。

Install-Package OctoPack

第2步。确保在主编译之前有一个构建步骤,它将安装任何引用的NuGet包。

enter image description here

第3步。从下载页面安装TeamCity plugin for Octopus deploy并重新启动TeamCity服务器服务

第4步。您现在可以在MSBuild运行程序配置中看到其他选项,如果您在构建配置中选中以下框,它将为您生成一个NuGet包,其中包含成功部署所需的所有内容。

enter image description here

作为一个小技巧,我通过引用输出包直接将包发布到Octopus(而不是等待它在构建结束时作为工件附加,因此需要两个构建配置)

enter image description here

希望这有帮助

答案 1 :(得分:-1)

如果NuGet pack没有按照您的预期从项目文件中打包您的应用程序,则必须创建一个NuGet规范文件并指定应该如何打包。对于Web应用程序,就像创建一个简单的.spec文件并将其放入Web应用程序目录一样简单,但对于其他可能更复杂的项目。查看Nuspec参考,了解如何添加内容和依赖项。 https://docs.nuget.org/create/nuspec-reference