asp.net - publicar - visual studio publish to iis
VS 2012 Publish: no se puede encontrar el AspnetMergePath vĂ¡lido (5)
Aquí hay una solución que no requiere cambiar el archivo de objetivos. La solución alternativa de http://connect.microsoft.com/VisualStudio/feedback/details/786492/publish-cant-find-the-valid-aspnetmergepath sugiere pasar elementos adicionales a msbuild. Pude hacerlo funcionar usando esto:
msbuild website.publishproj / p: DeployOnBuild = true / p: PublishProfile = Release /p:VisualStudioVersion=12.0 / p: AspnetMergePath = "C: / Archivos de programa (x86) / Microsoft SDKs / Windows / v8.1A / bin / NETFX 4.5 .1 Herramientas / "
La clave aquí es la propiedad AspnetMergePath
, que es posible que deba cambiar si el SDK de Windows está instalado en una ubicación diferente. Si GetAspNetMergePath
propiedad GetAspNetMergePath
de la solución, falla, pero eso puede ser necesario dependiendo de la versión del SDK.
Acabo de instalar la Actualización 2 para Visual Studio 2012, que introduce un nuevo cuadro de diálogo Publicar. Estoy tratando de hacer que haga lo que solía hacer (precompilar un sitio web antes de publicarlo), y me encuentro con el error de que
"Can''t find the valid AspnetMergePath"
que se lanza desde el archivo Microsoft.Web.Publishing.AspNetCompileMerge.targets. He confirmado que el archivo aspnet_merge.exe existe en varios lugares de mi computadora, pero
$(GetAspNetMergePath)
está evaluando a una cadena vacía por alguna razón. Debo faltar algunos ajustes de configuración, pero nunca me he metido con esos antes, así que estoy confundido en cuanto a por qué esto empezaría de repente.
¿Alguien puede ofrecer consejos sobre cómo resolver esto? He realizado la búsqueda estándar de Google en este error y nada me ha llevado a la solución correcta.
Me topé con el mismo problema. Busqué en todos los sitios relacionados con microsoft, encontré muchas quejas y ninguna intención de microsoft para solucionarlo.
Aquí cómo lo trabajé alrededor de mi sistema. Edite el archivo Microsoft.Web.Publishing.AspNetConfigurationMerge.targets
y agregue la siguiente línea. Asegúrese de que la ruta del SDK de Microsoft sea la misma en su PC, si no es así, cámbiela:
<TargetFrameworkSDKToolsDirectory>C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/</TargetFrameworkSDKToolsDirectory>
Aquí cómo debe verse:
<Target
Name="GetAspNetMergePath"
DependsOnTargets="$(GetAspNetMergePathDependsOn)"
Condition ="''$(GetAspNetMergePath)'' != ''false''">
<PropertyGroup>
<TargetFrameworkSDKToolsDirectory>C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/</TargetFrameworkSDKToolsDirectory>
<AspnetMergeName>aspnet_merge.exe</AspnetMergeName>
<AspnetMergePath Condition="Exists(''$(TargetFrameworkSDKToolsDirectory)$(AspnetMergeName)'')">$(TargetFrameworkSDKToolsDirectory)</AspnetMergePath>
</PropertyGroup>
<Error Condition="''$(AspnetMergePath)'' == '''' Or !Exists($(AspnetMergePath))"
Text="Can''t find the valid AspnetMergePath" />
Otra opción que me funcionó con este mismo error fue instalar Visual Studio (en mi caso expreso). Construí la aplicación una vez en el servidor y, a partir de ese momento, la construí correctamente como parte de mi proyecto de integración continua.
Tuve el mismo problema en VS 2012 y todo lo que hice fue lo siguiente:
Haga clic en Publicar, en Publicar web vaya a la pestaña Configuración, desmarque "Precompilar durante la publicación".
Tuve el mismo problema hoy mientras construía usando la línea de comandos msbuild. La solución es usar msbuild.exe en C: / Archivos de programa (x86) / MSBuild / 12.0 / Bin
y no de C: / Windows / Microsoft.NET / Framework / v4.0.30319
El problema se debe al hecho de que el nuevo msbuild ahora es parte de Visual Studio 2013 y ya no es .Net Framework.