Компиляция файла проекта .vbproj или .csproj без Visual Studio

Есть ли способ скомпилировать файл проекта .vbproj или .csproj напрямую, как это делает Visual Studio?

Когда вы компилируете в Visual Studio, в окне «вывода» отображается фактический вызов компилятора, который обычно выглядит так:

vbc.exe [набор опций] [длинный список файлов .vb]

Я хотел бы программно вызвать "что-то", что могло бы взять файл .vbproj и сделать все, что делает Visual Studio, для создания этой длинной командной строки. Я знаю, что мог сам проанализировать .vbproj и сгенерировать эту командную строку, но я бы предпочел избавить себя от всей обратной инженерии и проб и ошибок ...

Есть ли для этого инструмент? Я бы предпочел сделать это на машине без установленной Visual Studio. Однако, если есть способ вызвать Visual Studio с некоторыми параметрами для этого, это тоже будет хорошо.

Я вкратце посмотрел на MSBuild, и похоже, что он работает из файла проекта .proj, который мне пришлось бы создавать особенно, и который мне нужно было бы обновлять каждый раз, когда я добавляю файл в файл .vbproj. (Я посмотрел на него бегло, так что, скорее всего, я пропустил что-то важное)

Любая помощь будет оценена


person Daniel Magliola    schedule 05.11.2008    source источник
comment
См. Также stackoverflow.com/q/5174893/30280   -  person Bevan    schedule 29.02.2012


Ответы (6)


MSBuild - самый простой способ. Например:

msbuild /property:Configuration=Release MyFile.vbproj
person Community    schedule 05.11.2008
comment
Предоставление реальной командной строки - вот что подтолкнуло этот комментарий от посредственности к величию. - person Brandon Rhodes; 27.05.2010
comment
Расположение MSBuild.exe - ›social.msdn.microsoft.com/forums/windowsapps/en-us/ - person Fil; 17.02.2015

MSBuild также может взять ваш файл решения и использовать его для компиляции.

person Rob Prouse    schedule 05.11.2008

Вы можете использовать MSBUILD или CSC. MSBuild, который, как вы упомянули, действительно использует файлы вашего проекта и решения. CSC скомпилирует определенные файлы или все файлы в определенном дереве каталогов.

Вам также следует подумать об автоматизации ваших сборок с помощью NAnt и / или CruiseControl.net.

Кроме того, вот пример того, как скомпилировать код без Visual Studio с помощью CSC. http://blog.slickedit.com/?p=163

person AaronS    schedule 05.11.2008

Просто чтобы вы знали, что файлы .vbproj и .csproj - это MSBuild. Итак, все, что вы прочитали, вы можете напрямую применить к этим файлам.

Сайед Ибрагим Хашими

Моя книга: Внутри Microsoft Build Engine: использование MSBuild и Team Foundation Сборка

person Sayed Ibrahim Hashimi    schedule 22.05.2009

В папке проектного решения:

msbuild wpfapp1.sln /p:BuildProjectReferences=true

MSbuild обычно находится в:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

(или что-то подобное, в зависимости от версии)

csc.exe компилирует файлы, msbuild компилирует проекты и решения

person Alexander Ivanov    schedule 10.09.2017

Вверху файла .vbproj находится файл. Добавьте эту строку в группу свойств, чтобы запретить выполнение VB:

<NoVBRuntimeReference>On</NoVBRuntimeReference>

Все остальное сделает MSBuild. Нет необходимости использовать командную строку, если у вас есть IDE.

person JWPlatt    schedule 16.09.2013