2008-08-26 45 views
4

我最近升级了VS2005网络部署项目,VS2008 - 现在我得到以下错误,当建筑:使用Visual Studio 2008 Web部署项目 - 得到一个错误发现aspnet_merge.exe

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部署项目,并得到了同样的错误。

回答

8

显然,aspnet_merge.exe(以及所有其他SDK工具)不打包在Visual Studio 2008. Visual Studio 2005打包这些工具作为其安装的一部分。

这个地方是Windows 2008 SDK(latest download)的安装。 Windows 7/Windows 2008 R2 SDK:here

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

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

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

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

3

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

您可以下载Win7和.NET 3.5 SP1的winsdk_web.exe安装程序here

相关问题