使用Visual Studio 2008 Web部署项目 - 找到aspnet_merge.exe时出错

Ada*_*dam 4 asp.net visual-studio-2008

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

The specified task executable location "bin\aspnet_merge.exe" is invalid.
Run Code Online (Sandbox Code Playgroud)

以下是错误的来源(来自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)"
      />
Run Code Online (Sandbox Code Playgroud)

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

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

Ada*_*dam 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"
Run Code Online (Sandbox Code Playgroud)

注意:如果不在默认位置,则需要进行修改以指向安装SDK的位置.

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