Почему MSBuild отказывает из командной строки, где VS2008 успешно? - PullRequest
0 голосов
/ 09 апреля 2010

У меня есть решение ASP.NET, которое прекрасно работает в VS2008.

Тем не менее, это не удается, когда я делаю это:

MSBUILD.exe c:\path-to-sln 

Сбой из-за ошибки CS0006 («Файл метаданных 'dll_name' не найден»). Сбой также возникает, когда я пытаюсь с .csproj проекта в решении.

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

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

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

(Я смотрел на Как получить команду построения строки cmd для решения VS? , но все еще не получил ее)

1 Ответ

1 голос
/ 09 апреля 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...