MSBuild目标失败,因为_CopyWebApplication目标尝试复制web.config

时间:2010-07-12 21:21:21

标签: msbuild

我有> 443个项目要为应用程序构建和组装。大约1/4是WCF服务。我的新简化构建脚本(遗留的是dos批处理文件,.net应用程序,msbuild spaghetti编码混合)失败,因为_CopyWebApplication目标运行时web.config文件不存在。此文件是本地开发人员测试项目的一部分,不需要发布,因为我们在其他地方有一个主web.config。

我正在使用MSBuild 3.5,但可能有4.0版本。

2 个答案:

答案 0 :(得分:2)

如果你真的,真的无法修改现有的构建目标,你可以让那个dev web.config通过,并且要么阻止后者覆盖它,要么只是忽略它依赖于部署过程?通过制作额外的构建目标来说,只在需要清理的项目中调用它?我很确定你可以在你的构建中找到几个可以进行清理的地方。

或者你可以在循环的早期注入一个目标,将你的主web.config复制到你需要的地方 - 模态取决于你的实际情况 - 没有通用的最佳方法。

如果你只是说“我不敢碰任何东西”,问题就不会消失。您必须修改某些内容,方法是在构建之前/之后复制或清理新目标。

您还可以制作_CopyWebApplication的3个变体 - 一个可以开箱即用,另一个可以完成所有操作,除了尝试复制没有人想要的文件和一个空的 - 所以你不要强迫任何东西,但是提供选择。

答案 1 :(得分:1)

通过使用

导入项目底部的文件来覆盖目标
<Target Name="_CopyWebApplication" />

这个目标始终是一种令人发指的痛苦,特别是如果你尝试并命令outdir属性。它并不是那么有价值。