2

我正在尝试诊断我们构建中的错误。该错误不会发生在我们的构建服务器或我们的许多开发机器上,但会在我的计算机和其他几台计算机上持续发生。我可以从 VS2010 构建项目而没有错误。如果我在控制台中使用此命令:

devenv Solution.sln /Build debug

我得到以下输出:

------ Build started: Project: Solution, Configuration: Debug Any CPU ------
  Solution -> [Path]\Solution.dll
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========

有时(似乎是随机的)在那一点上,我会收到一个 VS 弹出窗口,要求我在线检查解决方案,关闭或调试。调试给了我:

Unhandled exception at 0x596e29a8 in devenv.exe: 0xC0000005: Access violation reading location 0x02c58bf0.
csproj.dll!596e29a8()    
[Frames below may be incorrect and/or missing, no symbols loaded for csproj.dll]    
csproj.dll!596e2a00()    
csproj.dll!596f089a()    
oleaut32.dll!7524f786()    
oleaut32.dll!7524d398()    
rpcrt4.dll!75670966()    
rpcrt4.dll!755f4184()    
rpcrt4.dll!755f413d()    
ole32.dll!757bb1cf()    
ole32.dll!757baf19()    
ole32.dll!757bb30f()    
ole32.dll!757a55b0()    
KernelBase.dll!75580ce7()    
oleaut32.dll!75244a3e()    
oleaut32.dll!7524e40a()    
oleaut32.dll!7524e4ef()    
oleaut32.dll!7524e50d()    
ole32.dll!758aadea()    
ole32.dll!758adccd()    
ole32.dll!758adb41()    
ole32.dll!758ae1fd()    
ole32.dll!757c9367()    
ole32.dll!757c9326()    
user32.dll!75d562fa()    
user32.dll!75d56d3a()    
user32.dll!75d56ce9()    
user32.dll!75d56d91()    
user32.dll!75d577c4()    
user32.dll!75d5788a()    
ole32.dll!7578d03c()    
ole32.dll!7578d22c()    
clr.dll!6d7da27d()    
clr.dll!6d7da209()    
clr.dll!6d80e9e7()    
clr.dll!6d80eaa8()    
clr.dll!6d7da462()    
WindowsBase.ni.dll!5f4bf07a()    
mscorlib.ni.dll!6ca9dc84()    
clr.dll!6d6721bb()    
clr.dll!6d6aa7aa()    
clr.dll!6d6aa94c()    
clr.dll!6d6aa981()    
clr.dll!6d7da1c3()    
clr.dll!6d6f4795()    
clr.dll!6d80eaa8()    
clr.dll!6d80eb27()    
clr.dll!6d69173e()    
clr.dll!6d767628()    
clr.dll!6d827019()    
mscorlib.ni.dll!6caa1953()    
mscorlib.ni.dll!6caa1953()    
Microsoft.VisualStudio.Platform.AppDomainManager.ni.dll!69d35a09()    
Microsoft.VisualStudio.Platform.AppDomainManager.ni.dll!69d35a09()    
Microsoft.VisualStudio.Platform.AppDomainManager.ni.dll!69d3c209()    
clr.dll!6d6725a1()    
clr.dll!6d76590b()    
clr.dll!6d7659e4()    
clr.dll!6d765a4a()    
clr.dll!6d765baf()    
004fa1e2()  
msenv.dll!6282e820()    
msenv.dll!6282e820()    
msenv.dll!6282ec04()    
msenv.dll!6282ec81()    
msenv.dll!627615e7()    
msenv.dll!6280e188()    
devenv.exe!2fac0637()    
devenv.exe!2fac0fd4()    
kernel32.dll!75c0520b()    
msvcr100.dll!_onexit(int (void)* func)
msvcr100.dll!__set_flsgetvalue()
devenv.exe!2fac20d8()    
devenv.exe!2fac2148()    
kernel32.dll!75c033aa()    
ntdll.dll!773d9ef2()    
ntdll.dll!773d9ec5()    

即使发生错误,dll 和 pdb 文件也已经在输出文件夹中,并且所有内容似乎都已正确构建。有几个将 CopyLocal 设置为 true 的引用,并且这些文件也始终存在于输出文件夹中。没有人看到任何运行时错误,也没有人在使用二进制文件时遇到任何问题,无论是否发生错误。该错误也很烦人,因为它暂停了构建脚本,因此我们必须关闭错误窗口才能继续。

我想确定错误的原因,或者至少找到一种自动关闭/不显示弹出窗口并让脚本继续运行的方法。

编辑:

根据 Dave 的建议,我尝试了 MSBuild,它编译时没有任何错误。这为我解决了这个问题。

4

1 回答 1

0

使用 MSBuild 构建项目解决了这个问题。我一直无法弄清楚为什么我们有时会在某些机器上看到错误,但是由于我将脚本更改为在该项目中使用 MSBuild,所以没有人看到错误。再次感谢,戴夫。

于 2013-08-15T19:39:21.557 回答