使用Visual Studio 2008 Web部署项目-查找aspnet_merge.exe时出错
时间:2020-03-05 18:43:28 来源:igfitidea点击:
我最近将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部署项目,并得到了相同的错误。
解决方案
回答
显然,aspnet_merge.exe(和所有其他SDK工具)未打包在Visual Studio 2008中。VisualStudio 2005将这些工具打包为安装的一部分。
获得此功能的地方是Windows 2008 SDK的安装(最新下载)。
Windows 7 / Windows 2008 R2 SDK:此处
解决方案是安装Windows SDK,并确保在启动IDE之前将FrameworkSDKDDir设置为环境变量。批处理命令设置此变量:
SET FrameworkSDKDir="C:\Program Files\Microsoft SDKs\Windows\v6.1"
注意:如果不在默认位置,则需要进行修改以指向安装SDK的位置。
现在,VS2008将知道在哪里可以找到aspnet_merge.exe。
回答
我只是在尝试使用MSBuild在服务器上构建我的Web应用程序时遇到了同样的问题。我下载了SDK的"网络"版本,因为该设置只有500KB,它会提示我们安装哪些组件,并且只会下载并安装我们选择的组件。我未选中" .NET开发工具"之外的所有内容。然后,它下载并安装了大约250MB的内容,包括aspnet_merge.exe和sgen.exe。
我们可以在此处下载Win 7和.NET 3.5 SP1的winsdk_web.exe安装程序。