Visual Studio 2008 Web 配置プロジェクトの使用 - aspnet_merge.exe を見つけるとエラーが発生する
-
09-06-2019 - |
質問
最近、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 にパッケージ化されていません。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 がデフォルトの場所にない場合は、SDK をインストールした場所を指すように変更する必要があります。
これで、VS2008 は aspnet_merge.exe の場所を認識できるようになります。
他のヒント
MSBuild を使用してサーバー上に Web アプリケーションを構築しようとしたときに、同じ問題が発生しました。SDK の「Web」バージョンをダウンロードしたのは、セットアップがわずか 500 KB で、どのコンポーネントをインストールするかを尋ねるプロンプトが表示され、選択したコンポーネントのみがダウンロードされてインストールされるためです。「」以外のチェックを外しました。.NET開発ツール」。次に、aspnet_merge.exe や sgen.exe など、約 250 MB 相当のものをダウンロードしてインストールします。
Win 7 および .NET 3.5 SP1 用のwinsdk_web.exe セットアップをダウンロードできます。 ここ.