我正在尝试使用Visual Studio 2015和内部部署TFS 2013服务器为传统的VB.Net ASP.Net Forms应用程序设置持续集成过程。但是,我很难获得构建定义来成功构建我的应用程序。
构建失败,出现以下错误。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets (182): Could not copy the file "appSettings.config" because it was not found.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets (182): Could not copy the file "connectionStrings.config" because it was not found.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets (182): Could not copy the file "globalization.config" because it was not found.
提到的三个文件appSettings.config
,connectionStrings.config
和globalization.config
都是configSource
配置文件(web.config引用的外部配置文件),我不想这样做用作CI MSBuild的一部分(我希望在CI系统web.config上使用转换来交换必要的设置)。
他们的属性标记为Build Action: Content
和Copy to output directory: Do not copy
。这些文件属性是否正确告诉MSBuild忽略它们?我尝试切换到Build Action: None
但没有成功。
我是否需要在项目文件或MSBuild设置中添加额外的配置才能让它忽略它们?
答案 0 :(得分:0)
使用Copy to output directory: Do not copy
和name
进行测试后。这对我在VS的本地MSbuild也可以正常工作。
因此,您的问题与您的TFS XAML构建定义有关。显然,那些xx.config文件不在TFS期望的路径中。 XAML构建实际上也调用MSBuild来执行构建。
为了缩小问题范围,一种方法是将XAML构建和本地MSBuild的日志差异与某些参数(例如build proj文件)进行比较。然后修改您的构建定义。
另一种方法是在构建流程模板中添加自定义工作流活动来完成此操作,请参阅TFS Build not transforming web.config as expected。在XAML构建定义中,您还可以运行脚本文件(或其他方式)来修改项目(工作目录),以便在TFS构建期间构建项目之前使用正确的.Config文件。