我有> 443个项目要为应用程序构建和组装。大约1/4是WCF服务。我的新简化构建脚本(遗留的是dos批处理文件,.net应用程序,msbuild spaghetti编码混合)失败,因为_CopyWebApplication
目标运行时web.config文件不存在。此文件是本地开发人员测试项目的一部分,不需要发布,因为我们在其他地方有一个主web.config。
我正在使用MSBuild 3.5,但可能有4.0版本。
答案 0 :(得分:2)
如果你真的,真的无法修改现有的构建目标,你可以让那个dev web.config通过,并且要么阻止后者覆盖它,要么只是忽略它依赖于部署过程?通过制作额外的构建目标来说,只在需要清理的项目中调用它?我很确定你可以在你的构建中找到几个可以进行清理的地方。
或者你可以在循环的早期注入一个目标,将你的主web.config复制到你需要的地方 - 模态取决于你的实际情况 - 没有通用的最佳方法。
如果你只是说“我不敢碰任何东西”,问题就不会消失。您必须修改某些内容,方法是在构建之前/之后复制或清理新目标。
您还可以制作_CopyWebApplication的3个变体 - 一个可以开箱即用,另一个可以完成所有操作,除了尝试复制没有人想要的文件和一个空的 - 所以你不要强迫任何东西,但是提供选择。
答案 1 :(得分:1)
通过使用
导入项目底部的文件来覆盖目标<Target Name="_CopyWebApplication" />
这个目标始终是一种令人发指的痛苦,特别是如果你尝试并命令outdir属性。它并不是那么有价值。