Сборка проекта Visual Studio через командную строку - PullRequest
29 голосов
/ 15 апреля 2011

Я запускаю веб-сайт ASP.NET из установки Windows Server 2008, и мне нравится редактировать страницы через командную строку, так как я ssh на сервер.

Я установил Vim на сервере, чтобы я мог легко редактировать файлы. Если я редактирую страницы HTML, CSS и .aspx, обновления успешны. Но если я хочу отредактировать исходный код, мне придется пересобрать проект. Перестройка проекта прекрасно перекомпилирует все и обновляет копию в Интернете. Это сервер разработки, поэтому все обновления в порядке, так как никто не видит этот сервер.

Как я могу собрать проект через командную строку для обновления исходного кода и сборки на сервере?

Проект написан на C #, а все файлы находятся в папке wwwroot, поэтому после сборки не нужно перемещать файлы.

Ответы [ 4 ]

39 голосов
/ 15 апреля 2011

Создайте .bat файл с именем: Manual_MSBuild_ReleaseVersion.bat

Поместите это в файл .bat.

REM you'll have to find the "latest" version of where msbuild.exe resides on your machine.. here are some popular versions/locations
REM set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v2.0.50727
REM set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v3.5
REM set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319
REM set msBuildDir=C:\Program Files (x86)\MSBuild\12.0\Bin
set msBuildDir=C:\Program Files (x86)\MSBuild\14.0\Bin

call "%msBuildDir%\msbuild.exe"  MySolution.sln /p:Configuration=Release /l:FileLogger,Microsoft.Build.Engine;logfile=Manual_MSBuild_ReleaseVersion_LOG.log
set msBuildDir=

Вы можете создать файл .sln или файл .csproj. MySolution.sln или MyProject.csproj

См. Как: использовать MSBuild для создания веб-пакета для получения дополнительной информации.

Вы можете сделать еще один шаг вперед:

rd .\BuildResults /S /Q
md .\BuildResults
rd .\MyProject\Bin\Release  /S /Q

REM set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v3.5
set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319
call "%msBuildDir%\msbuild.exe"  MySolution.sln /p:Configuration=Release /l:FileLogger,Microsoft.Build.Engine;logfile=Manual_MSBuild_ReleaseVersion_LOG.log
set msBuildDir=

XCOPY .\MyProject\Bin\Release\*.* .\BuildResults\

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

Супер свежий, каждый раз. И если сборка не работает, каталог \ BuildResults будет пустым.

И тонкий небольшой индикатор, дата-время каталога \ BuildResults - это последний раз, когда вы строили (или пытались построить) решение / проект. Тонкий, но иногда полезный.

10 голосов
/ 04 ноября 2015

Может быть с этой командой:

  >> devenv myproject.sln /Build "Release|x86"

Вы можете найти devenv в пути "C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ devenv.exe".

8 голосов
/ 19 февраля 2017

Я использовал модификацию ответа от @granadaCoder выше.

Для .NET версии 4.5 и выше, в

нет соответствующего каталога сборки.

% WINDIR% \ Microsoft.NET \ Framework \

и использование MSBuild для более старой среды не позволит вам скомпилировать более новые конструкции, такие как интерполированные строки.

Чтобы обойти это, вам нужно установить последнюю версию MS Build Tools (в настоящее время 2015) и использовать MSBuild.exe в

% ProgramFiles (x86)% \ MSBuild \ 14.0 \ Bin

2 голосов
/ 15 апреля 2011

Установите .NET SDK и используйте инструмент командной строки MsBuild.exe.Это то, что Visual Studio использует при создании проекта или решения.

...