2013-07-30 2 views
2

Я пытаюсь диагностировать ошибку в нашей сборке. Ошибка не возникает на нашем сервере сборки или многих наших машинах dev, но происходит последовательно на моем компьютере и нескольких других. Я могу построить проект из 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, и эти файлы также всегда присутствуют в выходной папке. Никто не видел ошибок во время выполнения и не испытывал каких-либо проблем при использовании двоичных файлов, независимо от того, произошла ли ошибка. Ошибка также раздражает, так как она приостанавливает скрипт сборки, поэтому мы должны закрыть окно ошибки, чтобы продолжить.

Я хотел бы определить причину ошибки или, по крайней мере, найти способ автоматического закрытия/отсутствия всплывающего окна и продолжения сценария.

Edit:

Основываясь на предложение Дэйва, я попытался MSBuild и компилируется без каких-либо ошибок. Это решает проблему для меня.

+0

Может ли ваш VS работать с повышенными разрешениями, но выполнение команды cmd выполняется? (Хотя похоже, что к DLL обращается только некорректное/недопустимое смещение) –

+0

Это похоже на внутреннюю проблему VS (в отличие от того, что вы делаете неправильно). Я бы попробовал ремонт на VS. –

+1

Почему бы не использовать командную строку MSBuild для выполнения сборки? – DaveShaw

ответ

0

Построение проекта с использованием MSBuild решило эту проблему. Я не мог понять, почему мы иногда видим ошибку на некоторых машинах, но поскольку я изменил наш скрипт на использование MSBuild для этого проекта, никто не видел ошибку. Еще раз спасибо, Дейв.

Смежные вопросы