如何在Web应用程序文件系统中包含配置转换文件发布输出

问题描述 投票:5回答:1

我已经为此花了一段时间。我正在尝试使用TeamCity和Octopus Deploy实现持续的集成和部署管道。除了一个问题,我在那里的比例是99%。我正在使用teamcity的标准msbuild运行程序,配置为使用msbuild的版本12。

我需要在发布的输出中包含web.config转换,以便可以将它们打包到nuget包中以进行章鱼部署。我确实not希望通过msbuild应用转换。

不是使用Octopack创建软件包。我正在使用内置的teamcity nuget打包器。因此,我将网站发布到文件系统文件夹中,然后根据该文件夹中的文件创建软件包。但是,无论我做什么,我都无法使msbuild在发布中包含web.config转换文件(我正在使用Octopus Deploy来执行转换,所以我不希望msbuild执行它们)。

我已经确认所有转换文件(Web.Release.config等)都标记为“内容”。我没有将它们标记为始终复制,因为这样做会将它们复制到bin文件夹,而不是它们所属的根文件夹。

我已阅读了应用转换所需的msbuild命令行中的/p:Configuration=属性。我的msbuild参数如下所示:

/p:DeployOnBuild=true /p:PublishProfile=Deployment

发布配置文件中似乎没有与转换相关的任何内容。发布配置文件包含要发布到的文件系统位置。

这里有什么建议吗?

注意:我已经放弃并找到了不同的解决方案,但是如果有人有任何输入,我将保留此方法。

asp.net-mvc msbuild teamcity octopus-deploy
1个回答
0
投票

您可以创建一个自定义。nuspec文件并从中引用要包含的文件。

我的建议是将.nuspec文件与web.config / web.release.config文件放在同一目录中,并从那里建立相对路径。

因此,如果您发布到名为/output的目录,则可以使用如下规则:>

<files>
  <file src="*.config" target="\" />
  <file src="publish\*.*" target="\" />
</files>

因此nuget pack nuspecPath将成为打包项目的方式

NuSpec Reference

希望这会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.