Как я могу опубликовать сайт из командной строки с некоторым профилем публикации?

Что-то вроде

msbuild /t:publish [use PublishProfileName] someproject.csproj

Ответы

Ответ 1

msbuild MyProject.csproj /t:PipelinePreDeployCopyAllFilesToOneFolder /p:Configuration=Release;_PackageTempDir=C:\temp\somelocation;AutoParameterizationWebConfigConnectionStrings=false

См. MSBuild 2010 - как публиковать веб-приложение в определенном месте (nant)?

Для Visual Studio 2012 вы можете использовать

msbuild MySolution.sln /p:DeployOnBuild=true;PublishProfile=Production;Password=foo

См. Развертывание веб-сайта ASP.NET с использованием Visual Studio: развертывание командной строки

Ответ 2

Это альтернативное решение для решения Pavel, но с использованием цели MsBuild в файле MsBuild:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="build"  
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
        <OutputDirectory>$(DeploymentProject)\bin\$(Configuration)</OutputDirectory>
        <OutputPath>C:\Inetpub\wwwroot</OutputPath>
    </PropertyGroup>
    <Target Name="build">
        <MSBuild 
        Projects="Your Solution File.sln"
        Properties="Configuration=$(Configuration);DeployOnBuild=true;DeployTarget=Package;_PackageTempDir=$(OutputPath);AutoParameterizationWebConfigConnectionStrings=false"
        >
        </MSBuild>
    </Target>
</Project>