我想診斷我們的版本中的錯誤。該錯誤不會發生在我們的構建服務器或許多開發機器上,但會一直出現在我的計算機和其他一些計算機上。我可以從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,並且這些文件也總是出現在輸出文件夾中。沒有人看到任何運行時錯誤,也沒有人在使用二進制文件時遇到任何問題,無論是否發生錯誤。該錯誤也是一個煩惱,因爲它暫停了構建腳本,所以我們必須關閉錯誤窗口才能繼續。
我想確定錯誤的原因,或者至少找到一種方法來自動關閉/不顯示彈出窗口並讓腳本繼續。
編輯:
基於戴夫的建議,我想的MSBuild,它編譯沒有任何錯誤。這爲我解決了這個問題。
您的VS能否以提升的權限運行,但是cmd提示符是否被執行時沒有? (雖然它看起來像正在被訪問的DLL只是錯誤/無效的偏移量) –
這看起來像一個內部VS問題(而不是你做錯的事情)。我會嘗試修復VS. –
爲什麼不使用MSBuild命令行來執行構建? – DaveShaw