セットアッププロジェクトをビルドするときに次のエラーが発生するのはなぜですか?
検証中にエラーが発生しました。HRESULT = '80004005'
セットアッププロジェクトをビルドするときに次のエラーが発生するのはなぜですか?
検証中にエラーが発生しました。HRESULT = '80004005'
ソリューション内の 1 つのプロジェクトToolsVersion="4.0"
(.csproj ファイル内) が変更されToolsVersion="3.5"
、プロジェクトのビルドが正常にセットアップされました。
私が見つけた理由は両方ともすでに他の回答にありますが、それらは別の回答にあり、完全には説明されていません。したがって、うまくいけば、これが可能性を組み合わせて、それぞれをデバッグする良い手段を提供します。:)
一般的な理由
私の問題は依存関係のエラーではありませんでした。しかし、それが一般的な理由のようです。したがって、基本的には、MSIファイルをチェックして、すべての依存関係がまだ有効であることを確認する必要があります。依存関係の問題である場合にこれを簡単に解決する方法についてのおそらく最良のブログ応答は、検証中にエラーが発生しました. HRESULT = '80004005' .
ブログからの抜粋:
以下の手順に従ってトラブルシューティングを行ってください。
- ソリューションに複数のプロジェクト出力がある場合は、問題を引き起こしているプロジェクトを特定します。エラーがなくなるまで、Setup Project(S) から一度に 1 つのプロジェクトを削除することで、これを行うことができます。
プロジェクトが特定されたら、問題を引き起こしている可能性のある参照を特定します。
- プロジェクト (A) が、ソリューションから削除されたプロジェクトを参照しているかどうかを確認します。- そのような参照がある場合は削除します。
- プロジェクト (A) が、参照として追加された後に別の物理的な場所に移動されたプロジェクトを参照しているかどうかを確認します。- そのような参照を削除して追加します。
参照を適宜修正した後、セットアップ プロジェクトを再ビルドして、エラーが解消されるかどうかを確認します。
別の理由
ただし、私の問題は Visual Studio のバージョン管理に関係していました。したがって、依存関係が有効であり、まだこの問題が発生している場合、VS2010 の問題である場合はこれを解決します。.
基本的に、 MSBuildを実行して次の警告が表示された場合:
プロジェクト ファイルには、このバージョンの MSBuild ではサポートされていない ToolsVersion="4.0" が含まれています。ToolsVersion="3.5" があるかのようにプロジェクトを扱う
次に、問題は Visual Studio のバージョン管理です。これは、1 つのプロジェクトが Visual Studio 2010 で開かれるか、作成されてから、既存の 3.5 ソリューションに保存または追加されたことを意味します。プロジェクト内のすべてのファイルを検索してToolsVersion="4.0"
、問題のある.csproj
ファイルを見つけ、テキスト エディターで開き、手動4.0
で3.5
.
このエラーは、依存関係エラーに関連しています。プライマリ出力プロジェクトへのすべての参照を削除し、再度追加しました。これでコンパイルOK!
私の場合、私のソリューション (VS2008) には、別のソリューション (VS2010) からも参照されたプロジェクトがありました。VS2010 ソリューションでは、プロジェクトを .NET 4.0 にアップグレードしました。後でプロジェクトが別のソリューションでも使用されていることに気付いたとき、.NET 3.5 にダウングレードしました。何らかの理由で、ここに記載されている 1 つの場所を除いて、csproj ファイルですべてが正しく変更されているように見えました:セットアップ プロジェクトのエラー HRESULT = '80004005'
これはすでにどこかで解決されていることは知っていますが、別の問題の角度からこれに光を当てたいと思いました。
今日、私はこの問題に直面しました。私の場合の解決策は?Visual Studio 2008 を再起動します。
多くの場合、プロジェクトの依存関係を単に削除して再度追加するだけで機能しますが、次の点に注意することが重要です。
エラー メッセージ「検証中にエラーが発生しました。HRESULT=80004005」。通常、プロジェクトが現在の [sic] ソリューションに追加されていない他のプロジェクトを参照している場合に発生します。セットアップ プロジェクトは、同じソリューション内の依存関係プロジェクトのみをサポートします。1
私の場合、Visual Studio 2008 と一緒に Visual Studio 2010 をインストールしました。私のセットアップ プロジェクトを Visual Studio 2008 で開くと同じエラーが発生しましたが、Visual Studio 2010 では問題ありませんでした。
Visual Studio 2010 がなく、Visual Studio 2008 がインストールされている別のマシンにコピーすると、コンパイルされます。
Stack Overflow の別の投稿からこの回答を読みましたが、うまくいきました。
セットアップ プロジェクト ファイル (.vdproj) をメモ帳(またはその他のテキスト エディター) で開きます。.vdproj ファイルの先頭にある次の行を削除します。
"SccProjectName" = "8:"
"SccLocalPath" = "8:"
"SccAuxPath" = "8:"
"SccProvider" = "8:"
再度ビルド - エラーはなくなりました。このエラーによって、プロジェクトのデプロイ、ビルド、デバッグ (またはその他) が妨げられることはありませんでした。それはただ私を悩ませました。そして、すべてのプロジェクトを現在の構成でビルドするように設定し、セットアッププロジェクトをそうしないように設定しても、それは起こりました。
Visual Studio 2010 をインストールし、ソリューションをそのバージョンに変換しました。パフォーマンスの問題のため、ソリューションを Visual Studio 2008 に戻しました。今ではすべてが改善されましたが、セットアップ プロジェクトをコンパイルしようとするとエラーが発生しました。ソリューションに Visual Studio 2010 テスト プロジェクトがあることに気付いたので、テスト プロジェクトをアンロードしてセットアップ プロジェクトを再度ビルドするだけで済みました。
概要: ソリューション内の任意の Visual Studio 2010 プロジェクトをアンロードします。
お役に立てば幸いです。