Estoy intentando que mi aplicación web se publique automáticamente cuando se realiza una compilación de versión. Lo hago utilizando el objetivo _CopyWebApplication. Agregué lo siguiente a mi archivo .csproj:_CopyWebApplication con web.config transformations
<!-- Automatically Publish in Release build. -->
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="AfterBuild">
<RemoveDir Directories="$(ProjectDir)..\Output\MyWeb" ContinueOnError="true" />
<MSBuild Projects="MyWeb.csproj" Properties="Configuration=Release;WebProjectOutputDir=$(ProjectDir)..\Output\MyWeb;OutDir=$(ProjectDir)bin\" Targets="ResolveReferences;_CopyWebApplication" />
</Target>
Esto funciona pero con un problema. La diferencia entre esta salida y la salida generada al utilizar el elemento de menú Publicar en Visual Studio es que la transformación Web.Release.config no se aplica al archivo Web.config cuando se utiliza el método MSBuild. En su lugar, se copian Web.config, Web.Release.config y Web.Debug.config.
Se aprecian todas las ideas.
WTF Microsoft? Gracias por compartir este Jabe ... – jjxtra
Me pregunto si hay una manera de arreglar la copia de bibliotecas referenciadas a través de otro proyecto para ser incluidas en msbuild ouput dir? –
Intenté hacer esto con WebDeploy use/p: WebPublishMethod = FileSystem y usando los archivos pubxml. No pude arreglarlo. Esta solución es la mejor forma que he encontrado. Un consejo: no pude hacer que funcionara sin el conjunto de propiedades OutDir. Tendrá que incluirlo en la línea de comando, incluso si ya está definido en las propiedades de su proyecto. –