我刚刚安装了Visual Studio2012的更新2,它引入了一个新的发布对话框。我试图让它做它以前做的事情(在发布之前预编译一个网站),但我遇到了一个错误,那就是它
"Can't find the valid AspnetMergePath"
它是从文件Microsoft.Web.Publishing.AspNetCompileMerge.targets.抛出的我已经确认文件aspnet_merge.exe存在于我的计算机上的多个位置,但是
$(GetAspNetMergePath)
由于某种原因计算为空字符串。我肯定遗漏了一些配置设置,但我以前从来没有弄乱过这些设置,所以我很困惑为什么这会突然开始。
有谁能给出解决这个问题的建议吗?我已经对这个错误进行了标准的谷歌搜索,但没有任何东西能让我找到正确的解决方案。
发布于 2013-05-22 22:44:39
我遇到了同样的问题。搜索了所有微软的相关网站,发现了很多投诉,微软并没有打算解决这个问题。
下面是我如何在我的系统中解决这个问题。编辑Microsoft.Web.Publishing.AspNetConfigurationMerge.targets
文件并添加以下行。请确保Microsoft SDK路径在您的PC上相同,如果不是,请更改它:
<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" />
发布于 2014-05-05 14:47:52
我今天在使用msbuild命令行构建时也遇到了同样的问题。修复方法是使用C:\Program Files (x86)\MSBuild\12.0\Bin中的msbuild.exe
而不是从C:\Windows\Microsoft.NET\Framework\v4.0.30319
这个问题是由新的msbuild现在是part of visual studio 2013而不是.Net框架引起的。
发布于 2016-06-10 19:36:54
我在VS 2012中遇到了同样的问题,我所做的一切如下所示:
单击“发布”,在“发布网站”下转到“设置”选项卡,取消选中“发布期间预编译”。
https://stackoverflow.com/questions/16070886
复制相似问题