4

我最近将 VS2005 Web 部署项目升级到 VS2008 - 现在在构建时出现以下错误:

The specified task executable location "bin\aspnet_merge.exe" is invalid.

这是错误的来源(来自 Web 部署目标文件):

<Target Name="AspNetMerge" Condition="'$(UseMerge)' == 'true'" DependsOnTargets="$(MergeDependsOn)">
    <AspNetMerge
      ExePath="$(FrameworkSDKDir)bin"
      ApplicationPath="$(TempBuildDir)"
      KeyFile="$(_FullKeyFile)"
      DelaySign="$(DelaySign)"
      Prefix="$(AssemblyPrefixName)"
      SingleAssemblyName="$(SingleAssemblyName)"
      Debug="$(DebugSymbols)"
      Nologo="$(NoLogo)"
      ContentAssemblyName="$(ContentAssemblyName)"
      ErrorStack="$(ErrorStack)"
      RemoveCompiledFiles="$(DeleteAppCodeCompiledFiles)"
      CopyAttributes="$(CopyAssemblyAttributes)"
      AssemblyInfo="$(AssemblyInfoDll)"
      MergeXmlDocs="$(MergeXmlDocs)"
      ErrorLogFile="$(MergeErrorLogFile)"
      />

这个问题的解决方案是什么?

注意 - 我还在 VS2008 中从头开始创建了一个 Web 部署项目并得到了同样的错误。

4

2 回答 2

8

显然 aspnet_merge.exe(和所有其他 SDK 工具)未打包在 Visual Studio 2008 中。Visual Studio 2005 将这些工具打包为其安装的一部分。

获得它的地方是安装 Windows 2008 SDK(最新下载)。Windows 7/Windows 2008 R2 SDK:这里

解决方案是安装 Windows SDK 并确保在启动 IDE 之前将 FrameworkSDKDir 设置为环境变量。设置此变量的批处理命令:

SET FrameworkSDKDir="C:\Program Files\Microsoft SDKs\Windows\v6.1"

注意:如果不在默认位置,您需要修改以指向安装 SDK 的位置。

现在 VS2008 将知道在哪里可以找到 aspnet_merge.exe。

于 2008-08-26T18:43:11.183 回答
3

我在尝试使用 MSBuild 在服务器上构建我的 Web 应用程序时遇到了同样的问题。我下载了 SDK 的“网络”版本,因为设置只有 500KB,它会提示您安装哪些组件,并且只下载和安装您选择的组件。除了“ .NET 开发工具”之外,我没有选中所有内容。然后它下载并安装了大约 250MB 的东西,包括 aspnet_merge.exe 和 sgen.exe

You can download the winsdk_web.exe setup for Win 7 and .NET 3.5 SP1 here.

于 2010-01-05T20:04:12.187 回答