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

MSBuild目标失败,因为_CopyWebApplication目标尝试复制web.config,msbuild,Msbuild,我有超过443个项目要为应用程序构建和组装。大约四分之一是WCF服务。我的新简化生成脚本(旧版是dos批处理文件、.net应用程序、msbuild意大利面编码的混合版)失败,因为当\u CopyWebApplication目标运行时,web.config文件不存在。该文件是本地开发人员测试项目的一部分,不需要发布,因为我们在别处有一个master web.config 我正在使用MSBuild 3.5,但可能有4.0可用。通过在项目底部导入一个文件来覆盖目标,方法是使用 <Target N

我有超过443个项目要为应用程序构建和组装。大约四分之一是WCF服务。我的新简化生成脚本(旧版是dos批处理文件、.net应用程序、msbuild意大利面编码的混合版)失败,因为当
\u CopyWebApplication
目标运行时,web.config文件不存在。该文件是本地开发人员测试项目的一部分,不需要发布,因为我们在别处有一个master web.config


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

通过在项目底部导入一个文件来覆盖目标,方法是使用

<Target Name="_CopyWebApplication" />


这个目标永远是一个令人发指的痛苦,特别是如果您尝试并命令outdir属性。它没有那么大的价值。

如果您真的不能修改现有的构建目标,您可以让dev web.config通过,然后删除以覆盖它,或者根据部署过程忽略它吗?比如说,创建只在需要清理的项目中调用的其他构建目标?我很确定你可以在你的构建中找到几个地方进行清理

或者,您可以在周期的早期注入一个目标,将您的master web.config复制到您需要的位置-模式取决于您的实际情况-没有通用的最佳方法

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


您还可以制作3个版本的_CopyWebApplication,一个是开箱即用,另一个是除了试图复制没有人想要的文件之外的所有操作,另一个是空的,因此您不需要强制执行任何操作,只需提供选项。

这是针对>450项目的解决方案,此外,我不能要求对这种规模的架构进行更改。我只能控制我的构建过程,我应该能够使一个构建过程比我们现有的更好。我又回到了这个问题上,我似乎无法让CopyWebApplication正确覆盖,有什么提示吗?