2012-12-05 22 views
2

我目前正在将我的项目代码转移到使用新的Team Foundation Service。我试图设置门控构建,以便在检查新代码时运行(并在解决方案中运行单元测试),但每次构建TFS时都会收到相同的错误。TFS与App.config文件构建问题(错误3719)

这是我不断收到错误: 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论坛上的这个问题,其中也有完整的诊断日志。

EDIT(12/12):在做伊利亚的建议(在下面他的回答),我得到这个从日志:

Larger log error

+0

您是否在构建服务器上运行防病毒软件? –

+0

构建服务器在云上。 – IronMan84

+0

你可以检查文件是否签出并存在吗?可能会将带有'的'** \ *。*'itemgroup放入失败的csproj中。 –

回答

1

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

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

随后,还出现了其他的app.config错误 - 所有这些都是因为实际上没有在源代码管理中或与DataLayerExtensions配置文件具有相同的损坏。

最后要说的一点是,对于TFService来说,如果使用任何第三方工具,即使它在本地机器上正常生成,您也会在构建服务中收到错误。为了解决这个问题,我必须创建一个新文件夹,将这些第三方程序集复制到它中,让所有相关项目将其引用切换到该文件夹​​中的.dll文件,然后继续检查它。一旦完成后,构建成功完成。

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

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>  
+0

上面显示的结果。 – IronMan84

+0

我相信它是DataLayerExtensions项目失败,而不是GlobalItems,你可以将它添加到该项目吗? –

+0

完成,但我认为现在错误可能在DataLayer项目中。 – IronMan84