Saltar al contenido

Usando MSBuild.exe para “Publicar” un proyecto ASP.NET MVC 4 con la línea cmd

Solución:

En VS 2012 (así como las actualizaciones de publicación disponibles en el SDK de Azure para VS 2010), hemos simplificado la publicación de línea de comandos para proyectos web. Lo hemos hecho utilizando Publicar perfiles.

En VS para un proyecto web, puede crear un perfil de publicación utilizando el cuadro de diálogo de publicación. Cuando crea ese perfil, se almacena automáticamente en su proyecto en Propiedades PublishProfiles. Puede usar el perfil creado para publicar desde la línea de comando con una línea de comando lo siguiente.

msbuild mysln.sln /p:DeployOnBuild=true /p:PublishProfile=<profile-name>

Si desea almacenar el perfil de publicación (archivo .pubxml) en alguna otra ubicación, puede pasar la ruta al PublishProfile.

Los perfiles de publicación son archivos de MSBuild. Si necesita personalizar el proceso de publicación, puede hacerlo directamente dentro del archivo .pubxml.

Si su objetivo final es pasar propiedades desde la línea de comando. Recomendaría lo siguiente. Cree un perfil de publicación de muestra en VS. Inspeccione ese perfil de publicación para determinar qué propiedades de MSBuild necesita pasar en la línea de comandos. Para su información, no todos los métodos de publicación admiten la publicación de línea de comandos (es decir, FTP / FPSE).

Para su información, si está compilando .csproj / .vbproj en lugar de .sln y está utilizando VS 2012, también debe pasar /p:VisualStudioVersion=11.0. Para obtener más detalles sobre el motivo, consulte http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx.

Cree un archivo build.xml que se vea a continuación

Inicie el símbolo del sistema de Visual Studio

Ejecute 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>

El siguiente comando funciona perfectamente:

msbuild Myproject.sln  /t:Rebuild /p:outdir="c:outproject\" /p:Configuration=Release /p:Platform="Any CPU"
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *