我刚刚为Visual Studio 2012安装了Update 2,它引入了一个新的Publish对话框。 我试图让它做它过去做的事情(在发布之前预编译一个网站),我遇到了它的错误

"Can't find the valid AspnetMergePath"

这是从文件Microsoft.Web.Publishing.AspNetCompileMerge.targets抛出的。 我已经确认文件aspnet_merge.exe存在于我的计算机上的多个位置,但是

$(GetAspNetMergePath) 

由于某种原因正在评估空字符串。 我必须错过一些配置设置,但我从来没有搞过那些,所以我很困惑为什么这会突然开始。

有人可以提供有关如何解决此问题的建议吗? 我已经完成了标准的谷歌搜索这个错误,没有任何东西让我找到正确的解决方案。

===============>>#1 票数:18 已采纳

我遇到了同样的问题。 通过所有微软相关网站搜索,发现了很多抱怨,并没有从微软修复它的意图。

在这里我是如何在我的系统中进行的。 编辑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" />

===============>>#2 票数:17

我在使用msbuild命令行构建时遇到了同样的问题。 解决方法是在C:\\ Program Files(x86)\\ MSBuild \\ 12.0 \\ Bin中使用msbuild.exe
而不是来自C:\\ Windows \\ Microsoft.NET \\ Framework \\ v4.0.30319

问题是由于新的msbuild现在已成为visual studio 2013的一部分,而不再是.Net框架。

===============>>#3 票数:6

这是一个不需要更改目标文件的解决方案。 来自http://connect.microsoft.com/VisualStudio/feedback/details/786492/publish-cant-find-the-valid-aspnetmergepath的解决方法建议将其他属性传递给msbuild。 我能够使用它来实现它:

msbuild website.publishproj / p:DeployOnBuild = true / p:PublishProfile = Release /p:VisualStudioVersion=12.0 / p:AspnetMergePath =“C:\\ Program Files(x86)\\ Microsoft SDKs \\ Windows \\ v8.1A \\ bin \\ NETFX 4.5 .1工具\\“

这里的关键是AspnetMergePath属性,如果Windows SDK安装在其他位置,您可能需要更改该属性。 如果我从变通方法中包含GetAspNetMergePath属性,则会失败,但根据SDK版本可能需GetAspNetMergePath

===============>>#4 票数:1

我在VS 2012中遇到了同样的问题,我所做的就是以下内容:

单击“发布”,在“发布Web”下,转到“设置”选项卡,取消选中“在发布期间预编译”。

===============>>#5 票数:0

另一个对我有同样错误的选择是安装Visual Studio(在我的案例中)。 我在服务器上构建了一次应用程序,然后从那时起将其正确构建为我的持续集成项目的一部分。

  ask by adsilb translate from so

未解决问题?本站智能推荐: