Я ищу команду для запуска против MSBuild.exe
которая просто берет проект MVC 4 и публикует его в заданном каталоге.
Например,
MSBuild <solution>/<project>.csproj -publish -output=c:/folder
Это явно неправильный синтаксис. Я пытаюсь упростить свой вопрос.
В этом вопросе говорится о сборке XML, но я не пытаюсь делать что-либо с такими подробностями.
Я просто пытаюсь развернуть.
Далее в этом вопросе кто-то говорит о «MSDeploy». Я могу разобраться в этом, но это единственный вариант? У меня нет возможности установить веб-развертывание на сервере. В этом случае все, что мне действительно нужно сделать, это «опубликовать» и отправить содержимое опубликованного проекта в заданный каталог на сервере / файловой системе.
Есть ли у кого-нибудь один лайнер, который я могу использовать?
Обязательно ли мне использовать MSDeploy?
Требуется ли для MSDeploy установка веб-развертывания на сервере?
Разве для настройки веб-развертывания на сервере не требуется настройка некоторых портов, разрешений и установка некоторых надстроек IIS?
Я бы хотел просто выполнить что-нибудь простое.
источник
Создайте файл build.xml, как показано ниже
Запустить командную строку Visual Studio
Запустите msbuild build.xml
<?xml version="1.0" encoding="utf-8"?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0" DefaultTargets="Build"> <PropertyGroup> <Build>$(MSBuildProjectDirectory)\Build</Build> <ProjectFile>MyProject.csproj</ProjectFile> <ProjectName>MyProjectNameInVisualStudio</ProjectName> <CopyTo>$(MSBuildProjectDirectory)\CopyTo</CopyTo> </PropertyGroup> <Target Name="Build"> <RemoveDir Directories="$(Build)"/> <MSBuild Projects="$(ProjectFile)" Properties="Configuration=Release;OutputPath=$(Build);OutDir=$(Build)/"></MSBuild> <Exec Command="robocopy.exe $(Build)\_PublishedWebsites\$(ProjectName) $(CopyTo) /e /is if %errorlevel% leq 4 exit 0 else exit %errorlevel%"/> </Target> </Project>
источник
Приведенная ниже команда отлично работает:
msbuild Myproject.sln /t:Rebuild /p:outdir="c:\outproject\\" /p:Configuration=Release /p:Platform="Any CPU"
источник
Я обнаружил, что ответом было развертывание конфигурации по умолчанию, то есть отладки. Конфигурация, выбранная в профиле публикации, кажется, игнорируется MSBuild. Соответственно, я изменил команду, чтобы указать правильную конфигурацию для развертывания ...
msbuild mysln.sln /p:Configuration=[config-name] /p:DeployOnBuild=true /p:PublishProfile=[profile-name]
где config-name = Release или другая созданная вами конфигурация сборки
источник
С веб-проектами вам необходимо создать, как указано выше, но затем вам также необходимо упаковать / скопировать. Мы используем копию файла, а не "публикацию" ...
Также; мы используем DEBUG / RELEASE для создания веб-сайта; но затем фактические среды, то есть "QA" или "PROD" для обработки преобразований web.config.
Поэтому мы сначала собираем его с помощью RELEASE, а затем упаковываем с помощью QA - в примере ниже.
<PropertyGroup> <SolutionName>XXX.Website</SolutionName> <ProjectName>XXX.Website</ProjectName> <IisFolderName>XXX</IisFolderName> <SolutionConfiguration>QA</SolutionConfiguration> <!--Configuration will be set based on user selection--> <SolutionDir>$(MSBuildThisFileDirectory)..</SolutionDir> <OutputLocation>$(SolutionDir)\bin\</OutputLocation> <WebServer>mywebserver.com</WebServer> </PropertyGroup> <Target Name="BuildPackage"> <MSBuild Projects="$(SolutionDir)\$(SolutionName).sln" ContinueOnError="false" Targets="Clean;Rebuild" Properties="Configuration=Release" /> <MSBuild Projects="$(SolutionDir)\$(ProjectName)\$(ProjectName).csproj" ContinueOnError="false" Targets="Package" Properties="Configuration=$(SolutionConfiguration);AutoParameterizationWebConfigConnectionStrings=False" /> </Target> <Target Name="CopyOutput"> <ItemGroup> <PackagedFiles Include="$(SolutionDir)\$(ProjectName)\obj\$(SolutionConfiguration)\Package\PackageTmp\**\*.*"/> </ItemGroup> <Copy SourceFiles="@(PackagedFiles)" DestinationFiles="@(PackagedFiles->'\\$(WebServer)\$(IisFolderName)\$(SolutionConfiguration)\%(RecursiveDir)%(Filename)%(Extension)')"/> </Target>
Так;
источник