我刚刚为Visual Studio 2012安装了更新2,它引入了一个新的“发布”对话框。我试图让它做它以前做的(在发布前预先编译一个网站),我遇到了错误,它是
"Can't find the valid AspnetMergePath"
这是从文件Microsoft.Web.Publishing.AspNetCompileMerge.targets抛出的。我确认文件aspnet_merge.exe存在于我的电脑上的多个地方,但是
$(GetAspNetMergePath)
由于某些原因正在评估为空字符串。我一定缺少一些配置设置,但是我从来没有搞过这些配置,所以我很困惑,为什么这会突然开始。
任何人都可以提供如何解决这个问题的建议?我在这个错误上完成了标准的Google搜索,没有任何事情使我得到正确的解决方案。
解决方法
我遇到同样的问题。通过所有微软相关网站搜索,发现很多投诉,没有意图从微软修复它。
在这里我如何在我的系统上工作。编辑Microsoft.Web.Publishing.AspNetConfigurationMerge.targets文件并添加以下行。请确保您的PC上的Microsoft SDK路径是一样的,如果没有,然后更改它:
<TargetFrameworkSDKToolsDirectory>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\</TargetFrameworkSDKToolsDirectory>
这里应该如何:
<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" />