2010-07-12 68 views
1

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

我正在使用MSBuild 3.5但4.0可能可用。

回答

2

如果你确实真的无法修改现有的构建目标,那么你可以让这个开发的web.config通过,或者反过来覆盖它,或者忽略它依赖于部署过程?通过制作额外的构建目标来进行说明,该目标仅在需要清理的项目中调用?我很确定你可以在你的构建中找到几个可以进行清理的地方。

或者你可以注入的目标早在循环到主web.config文件复制到你需要它 - 形态取决于你的实际情况 - 没有universaly做到这一点最好的办法。

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

您还可以创建_CopyWebApplication的3种变体 - 一种能够像开箱即用的一样,另一种除了尝试复制文件(无人需要,一种是空的)外,但提供选择。

+0

我已经回到这个问题,我似乎无法得到_CopyWebApplication正确覆盖,任何提示? – Maslow 2010-09-21 22:19:36

1

倍率通过在项目的底部,

<Target Name="_CopyWebApplication" /> 

这个目标导入文件的目标始终是一个十恶不赦的疼痛,特别是如果你试图指挥OUTDIR性能。这并不是那么有价值。

+0

这为> 450项目溶液,另外我不是在一个位置,决定了大小的架构的改变。我只能控制我的构建过程,我应该能够创造出比我们更好的构建过程。 – Maslow 2010-07-27 15:39:40