2010-04-09 3 views
0

У меня есть решение ASP.NET, которое прекрасно строит из VS2008.Почему MSBuild выходит из командной строки, где VS2008 преуспевает?

Однако это терпит неудачу, когда я это сделать:

MSBUILD.exe c:\path-to-sln 

Это терпит неудачу с ошибкой CS0006 («файл метаданных„dll_name“не может быть найден»). Он также терпит неудачу, когда я пытаюсь выполнить проект в рамках проекта .csproj.

Что такое VS2008, что делает MSBuild? Насколько я понимаю, VS знает о взаимозависимости между сборками MSBuild. Есть ли способ сообщить об этом MSBuild?

(мне нужно MSBuild работать из командной строки, потому что я зову его из MSBuild-задачи внутри CruiseControl.Net.)

Заранее спасибо. : 3)

(я смотрел на How to get cmd line build command for VS solution?, но до сих пор не получить)

ответ

1

вы должны установить переменные окружения, прежде чем MSBuild может работать. ссылка, которую вы отправили с вопросом, на самом деле имеет ответ (см. запись первого ответа).

один из способов, которым вы автоматизируете это, выбрать, какой файл vcvars * .bat вам нужен, в зависимости от того, на какой платформе вы хотите построить исполняемый файл. например, если вы хотите построить для x86, файл vcvarsall.bat говорит, что вам понадобится bin\vcvars32.bat. Вы можете скопировать этот пакетный файл, вручную добавить включает в себя, LIB и libpaths, и добавить шаг сборки в :end части пакетного файла, например, так:

... 
(batch file contents go here) 
:end 
MSBUILD.exe c:\path-to-sln 

после этого, вы можете просто сказать, все программы, пытаются создать из для запуска только что созданного командного файла.

+0

Спасибо за ваш ответ. Я не понимаю эту часть вашего ответа, хотя: «вручную добавьте свои включенные, lib и libpaths». Что еще мне нужно, кроме содержимого моего sln и vcvars32.bat? – sundeep

+0

вы должны добавить внешние включенные/библиотеки, если они есть, которые вы добавили в визуальные студии. файлы vcvars * .bat их не имеют; вы должны вручную добавить их в файл bat. я думаю, что в вашем случае вам не нужно ничего добавлять, потому что все, что вам нужно, находится в решении. – maranas

+0

спасибо маранасы. – sundeep

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