App.config文件的TFS构建问题(错误3719)

时间:2012-12-05 19:18:08

标签: visual-studio tfs msbuild visual-studio-2012 azure-devops

我目前正在将项目代码移至使用新的Team Foundation Service。我正在尝试设置gated构建,以便在我签入新代码时运行(并在解决方案中运行单元测试),但每次在TFS中构建时我都会遇到相同的错误。

这是我一直得到的错误: My MSBuild error

以下是诊断日志中涉及此问题的部分:Error Log

我已经对该App.config文件进行了三次检查:它在源代码管理中。此外,失败的项目正在其他地方建立,没有任何问题。

当我在Visual Studio 2012中构建时,它可以正常工作。当我从命令行使用MSBuild构建它时它工作正常。我甚至在本地计算机上安装了Team Foundation Server 2012,以便我可以使用Team Foundation Service用于MSBuild的确切命令行参数。这很好用。

如果您需要更多信息,我将很乐意提供。提前感谢您的所有帮助。

编辑:Here's a link在MSDN TFService论坛上查询此问题,其中还有完整的诊断日志。

编辑(12/12):在做Ilya的建议时(在下面的回答中),我从日志中得到了这个:

Larger log error

2 个答案:

答案 0 :(得分:1)

好的,我终于得到了这个工作。好哇!

根据上面链接中的MSDN讨论,DataLayerExtensions项目的app.config文件以某种方式损坏。从源代码控制中删除它然后重新配置配置文件就可以了。值得注意的是,12/12编辑中的图片中的错误并未指向DataLayer项目!它实际上是在构建依赖项(GlobalItems和DataLayer)之后构建DataLayerExtensions项目的第一行!标签中有一点细微差别。

随后,还发生了其他app.config错误 - 所有错误都是因为实际上没有源代码控制或与DataLayerExtensions配置文件具有相同的损坏。

最后要提到的一点是,显然,对于TFService,如果您使用任何第三方工具,您将在构建服务中遇到错误,即使它在本地计算机上构建良好。为了修复我必须创建一个新文件夹,将这些第三方程序集复制到其中,让所有相关项目将其引用切换到该文件夹​​中的.dll文件,然后继续检查它。完成后,构建成功完成。

在MSDN链接上仍然存在一个未解决的问题,即为什么Excel API也被拒绝,就像第三方工具一样,但这超出了这个问题的范围。

答案 1 :(得分:0)

尝试添加类似这样的内容以使csproj失败并在云中运行它,可能会泄露为什么缺少app.config。可能是某些其他自定义事件删除/重命名导致msbuild失败?

<Target Name="AfterBuild">
  <Warning Text="### DEBUG ###" />
  <ItemGroup>
    <All Include="**\*.*" />
    <Compile>
      <Exists Condition="!Exists('%(Identity)')">FALSE</Exists>
    </Compile>
    <AppConfigWithTargetPath>
      <Exists Condition="!Exists('%(Identity)')">FALSE</Exists>
    </AppConfigWithTargetPath>
  </ItemGroup>
  <Warning Text="### All: %(All.Identity)" />
  <Warning Text="### Compile: %(Compile.Exist) # %(Compile.Identity)" />
  <Warning Text="### App: %(AppConfigWithTargetPath.Exist) # %(AppConfigWithTargetPath.Identity) # %(AppConfigWithTargetPath.FullPath)" />
</Target>