#c# #visual-studio-2008 #msbuild #cruisecontrol.net #devenv
#c# #visual-studio-2008 #msbuild #cruisecontrol.net #devenv
Вопрос:
Я использую msbuild для сборки моего решения C # VS. У меня ошибка со сторонним элементом управления, для сборки которого требуется взаимодействие с пользователем. Я мог бы это исправить, если бы изменил конфигурацию cruisecontrol, чтобы использовать devenv, а не msbuild.
Мой вопрос: есть ли какая-либо разница в выходных двоичных файлах, если я перейду на devenv? msbuild и devenv создают одинаковые двоичные файлы? С той же оптимизацией?
Ответ №1:
Очевидно, что существуют различия в способе выполнения процесса сборки, но в конечном итоге любой метод вызывает один и тот же компилятор CSC C Sharp (в памяти или EXE) с одинаковыми параметрами. Естественно, что-нибудь может пойти не так, если все выполняется не в точно таком же порядке, особенно если вы используете параллельные сборки, но если сборка надежно завершается с помощью DevEnv и надежно завершается с помощью MSBuild, то вы, вероятно, можете принять их как эквивалентные.
Ответ №2:
Различий нет, но я не рекомендую вам переходить, потому что devenv.exe внутри CCNet выполняется независимо, и таким образом также невозможно взаимодействовать с пользователем. Но, devenv.exe потребляет больше памяти и пользовательских ресурсов, в то время как msbuild работает быстрее и намного лучше интегрируется с CCNet.
Я думаю, вам следует изучить документацию этого элемента управления, возможно, в нем есть некоторые переменные сборки, которые должны быть инициализированы, чтобы разрешить пропустить взаимодействие с пользователем?