セットアッププロジェクトのビルド時に次のエラーが発生するのはなぜですか?
検証中にエラーが発生しました。 HRESULT = '80004005'
このエラーは、依存関係エラーに関連しています。プライマリ出力プロジェクトへの参照をすべて削除し、再度追加しました。これでコンパイルはOKです!
ソリューションの1つのプロジェクトにはToolsVersion="4.0"
(.csprojファイル内)があり、それをToolsVersion="3.5"
に変更して、セットアッププロジェクトが正常にビルドされました。
私が見つけた理由はどちらもすでに他の回答にありますが、それらは別々の回答にあり、完全には説明されていません。したがって、うまくいけば、これは可能性を組み合わせ、それぞれをデバッグするための優れた手段を提供します。 :)
一般的な理由
私の問題は依存関係のエラーではありませんでした。ただし、それが一般的な理由のようです。したがって、基本的には、 [〜#〜] msi [〜#〜] ファイルをチェックして、すべての依存関係がまだ有効であることを確認する必要があります。おそらく、依存関係の問題である場合にこれを簡単に解決する方法に関する最良のブログ応答は検証中にエラーが発生しました。HRESULT= '80004005'です。
ブログから抜粋:
トラブルシューティングするには、以下の手順に従ってください。
- ソリューションに複数のプロジェクト出力がある場合は、問題を引き起こしているプロジェクトを特定します。エラーがなくなるまで、セットアッププロジェクトから一度に1つのプロジェクトを削除することで、これを行うことができます。
プロジェクトが特定されたら、問題を引き起こしている可能性のある参照を特定します。
- プロジェクト(A)がソリューションから削除されたプロジェクトを参照しているかどうかを確認します。 -そのような参照があれば削除します。
- プロジェクト(A)が、参照として追加された後に別の物理的な場所に移動されたプロジェクトを参照しているかどうかを確認します。 -そのような参照を削除して追加します。
参照を適切に修正した後、セットアッププロジェクトを再ビルドして、エラーがなくなるかどうかを確認します。
代替の理由
しかし、私の問題はVisual Studioのバージョン管理に関係していました。したがって、依存関係が有効であり、この問題が引き続き発生する場合は、VS2010 の問題である場合に解決します。
基本的に、 MSBuild を実行してこの警告が表示された場合:
プロジェクトファイルに含まれているToolsVersion = "4.0"は、このバージョンのMSBuildではサポートされていません。 ToolsVersion = "3.5"のようにプロジェクトを処理する
次に、問題はVisual Studioのバージョン管理です。これは、1つのプロジェクトがVisual Studio 2010で開かれたか作成されてから、既存の3.5ソリューションに保存または追加されたことを意味します。プロジェクトのすべてのファイルでToolsVersion="4.0"
を検索し、問題のある.csproj
ファイルを見つけてテキストエディターで開き、4.0
を3.5
に手動で変更しました。
今日はこの問題に出くわした。私の場合の解決策は? Visual Studio 2008を再起動します。
私の場合、私のソリューション(VS2008)には、別のソリューション(VS2010)からも参照されるプロジェクトがありました。 VS2010ソリューションでは、プロジェクトを.NET 4.0にアップグレードしました。後でこのプロジェクトが別のソリューションでも使用されていることに気付いたとき、.NET 3.5にダウングレードしました。何らかの理由で、ここに記載されている1つの場所を除いて、csprojファイルですべてが正しく変更されているように見えました: セットアッププロジェクトのエラーHRESULT = '80004005'
これはすでに別の場所で解決されていることは知っていますが、別の問題の角度からこれに光を当てたかったのです。
上記のどれもうまくいかなかったが、私はこれに自分で多大な時間を費やした。しかし、私はレジストリハックの別の解決策を見つけました。新しいDWORD(EnableOutOfProcBuild
)値(0
)からHKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild\EnableOutOfProcBuild
注:これはVisual Studio 2015用です
多くの場合、プロジェクトの依存関係を削除して再度追加するだけで機能しますが、次のことに注意することが重要です。
エラーメッセージ「検証中にエラーが発生しました。HRESULT= 80004005。」通常、プロジェクトが現在の[sic]ソリューションに追加されていない他のプロジェクトを参照している場合に発生します。セットアッププロジェクトは、同じソリューション内の依存関係プロジェクトのみをサポートします。 1
私の場合、Visual Studio 2010と一緒にVisual Studio 2010をインストールしました。VisualStudio 2008で開いたとき、セットアッププロジェクトは同じエラーを出しましたが、Visual Studio 2010では問題ありませんでした。
Visual Studio 2010はないがVisual Studio 2008はある別のマシンにコピーすると、コンパイルされます。
Stack Overflowの別の投稿からこの回答を読んだところ、うまくいきました。
メモ帳 (またはその他のテキストエディター)でセットアッププロジェクトファイル(.vdproj)を開きます。 .vdprojファイルの先頭にあるこれらの行を削除します。
"SccProjectName" = "8:"
"SccLocalPath" = "8:"
"SccAuxPath" = "8:"
"SccProvider" = "8:"
再度ビルド-エラーはなくなりました。このエラーによって、プロジェクトの展開、ビルド、デバッグ(またはなんらかの変更)が妨げられることはありませんでした。それはちょうど私を悩ませた。そして、私がすべてのプロジェクトを現在の構成でビルドするように設定し、セットアッププロジェクトをしないように設定しても、それは起こりました。
私はこれがちょっと古いニュースであることを知っていますが、私の特定の問題と解決策はここでは具体的に述べられていません(私が知る限り-見逃した場合は、謝罪します)。
同じ問題がありました。それは私のプロジェクトをコンパイルしませんでしたが、エラーはありませんでした。私が見ることができたすべては「ビルド失敗」でした。 「出力」ファイルを開き([表示]-> [メニューの出力]をクリック)、問題の原因となっている参照(私の場合は.dll)を正確に教えてくれました。
参照を削除して再作成すると、参照名がMicrosoft.Office.Core(32ビットバージョンのように見えた)から "OFFICE"に変更されました。その後、すべてがうまくいきました。 -プロパティウィンドウで参照しているファイルへのパスを書き留めてください...新しいパスはまったく同じでしたが、参照名が変更されました...それでも頭を悩ませています。 ..
したがって、この話の教訓は...エラーが発生せず、ビルドが失敗した場合は、[出力]タブを確認してください。
Visual Studio 2010をインストールし、ソリューションをそのバージョンに変換しました。パフォーマンスの問題のため、ソリューションをVisual Studio 2008に戻しました。すべてが改善されましたが、セットアッププロジェクトをコンパイルしようとするとエラーが発生しました。ソリューションにVisual Studio 2010テストプロジェクトがあることに気づいたので、テストプロジェクトをアンロードし、セットアッププロジェクトを再度ビルドするだけで済みました。
概要:ソリューションのVisual Studio 2010プロジェクトをアンロードします。
お役に立てば幸いです。