2009-05-22 19 views
11

Me gustaría simular la opción de menú "Publicar ..." desde WCF Service project (o ASP.NET Web Application o ...) menú contextual en Visual Studio 2008. No tengo la necesidad de publicarlo en una instancia de IIS en ejecución, solo para poner el contenido web junto con la carpeta bin en algún directorio local. ¿Hay alguna forma de agregarlo en eventos posteriores a la compilación o como una tarea MSBuild?Publicar WCF Service (o ASP.NET Web Application) usando la línea de comando

Respuesta

9

Aquí está la respuesta, gracias a este enlace: http://codingcockerel.co.uk/2008/05/18/how-to-publish-a-web-site-with-msbuild/ lo tanto, sólo he modificado el archivo .csproj de aplicación web, y escribió esto en AfterBuild objetivo (que ya estaba allí):

<Target Name="BeforeBuild"> 
    <Message Text="##############Before build##################" Importance="high"/> 
    <RemoveDir Directories="publish" 
     ContinueOnError="true"/> 
</Target> 
<Target Name="AfterBuild"> 
    <Message Text="##############After build##################$(OutputFolder)" Importance="high"/> 
    <MSBuild Projects="$(ProjectName).csproj" 
      Targets="ResolveReferences;_CopyWebApplication" 
      Properties="WebProjectOutputDir=publish\;OutDir=publish\bin\" /> 
</Target> 
0

Debe poder escribir un comando xcopy para copiar los archivos que necesita a la ubicación correcta. Microsoft tiene un artículo sobre xcopy deployment for asp.net.

Una vez que tenga el comando correcto, puede ponerlo en las acciones de Post Build para que se active automáticamente después de una compilación.

Consulte también VS Post Build Event para ver ejemplos sobre cómo copiar solo la salida dll (tenga en cuenta el uso de $ (TargetPath) & $ (TargetDir)).

0

HI, Deberías echar un vistazo al Web Deployment Projects. En realidad, estos son archivos de MSBuild con soporte de Visual Studio GUI. Precompilarán su sitio. Puede ampliar el comportamiento de estos para copiar los archivos generados a su servidor web.

Sayed Ibrahim Hashimi

Mi libro: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

+0

estoy teniendo problemas con la web proyectos de implementación, ya que desplegar el archivo .csproj, obj carpeta y todas las otras cosas innecesarias. Me gustaría reproducir el comportamiento del comando "Publicar ..." desde el menú contextual del proyecto de aplicación web (no el sitio web). ¿Hay alguna manera más fácil, o tengo que excluirlos manualmente, al igual que con la xcopy? –