検証中にエラーが発生しました。HRESULT = '8000000A'


98

自動ビルドでdevenvを使用すると、しばらくの間このエラーが発生します。私は見つけることができるすべてのWebサイトを調査しましたが、通常の回答では、依存関係の更新(手動の展開では修正されるが、自動では修正されないと思われます)と、プロジェクトからソース管理コーディングを削除することについて言及していますが、これは役に立ちませんでした。

ビルドするたびにエラーが発生するわけではありませんが、毎回異なる展開プロジェクトでランダムに発生するようです。

正確にこのエラーが発生する理由とそれを修正する方法についてのアドバイスはありますか?


ついに、よりエレガントなソリューションを手に入れましたか?失敗したときにビルドを再トリガーしているだけです。多分、便利なスクリプト(elegant solution)を要旨に入れてください。
キケネット2017

回答:


53

これはVisual Studio 2010(競合状態)の既知の問題です。こちらの接続アイテムをご覧ください。

私たちもこれに遭遇し、Microsoftとのこの問題に関して非常に満足のいくサポートコールがありました。要するに、これは既知の問題であり、解決されないため、Visual Studioセットアッププロジェクト(.vdproj)から移行することをお勧めします。

最初に失敗したときにMSIビルドを2回トリガーすることにより、この問題を回避しました。良くないですが、ほとんどの場合機能します(エラー率は10%から1%に低下しています)。


どうもありがとうございました。私はインターネットを精査して、なぜそれが起こっているのかを正確に調べていたところ、控えめに言っても、あいまいで役に立たない多数のマイクロソフトの返信に出くわしました。失敗したときにビルドを再トリガーしているだけですが、よりエレガントなソリューションを望んでいました。再度、感謝します。
Chris C.

@ChrisC。stackoverflow.com/a/25054572/206730回答の投票数が増えました。そのようにしてみましたか?
Kiquenet

oɔɯǝɹ@あなたが...同じ問題を持っている?あなたはMSIのビルドをもう一度トリガーsaingによって何を意味するかexplane可能性
レオンBarkan

122

Microsoft Visual Studio Installer Projects拡張機能を使用してVS200Xセットアッププロジェクトをアップグレードした後、VS2013またはVS2015でこの問題が発生した人のための更新。

MSからのv1.0.0.0のレシピに従って、ついにそれは私のために働きました:

Microsoft Visual Studioインストーラープロジェクト

残念ながら、このリリースのコマンドラインの問題のすべてのケースに対処することはできませんでした。それらに対処する適切な方法を調査しているためです。私たちが持っているのは、ほぼすべての人に有効だと私たちが信じている回避策です。それでもこの問題が発生する場合は、次のレジストリ値のDWORD値を0に変更してみてください:HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0_Config\MSBuild\EnableOutOfProcBuild (VS2013)
または
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MSBuild\EnableOutOfProcBuild(VS2015)
これが存在しない場合は、DWORDとして作成できます。


23
Visual Studio 2013の更新により、この変数がレジストリからワイプされます-再度追加する必要があります。
Derek W

4
Jenkinsを使用する場合、Jenkinsスレーブを実行しているユーザー用にレジストリキーを追加する必要があります。
Jirong Hu

3
KEEP IN MINDレジストリハイブはHKEY_CURRENT_USERであるため、これが自分以外のアカウント(tfs buildアカウントなど)から呼び出されている場合は、そのアカウントとしてログインし、設定を追加する必要があります。
Mike Cheel、2016

3
@DerekWコメントに追加するには、自動更新によってこれを一掃することもできます。
JustAnotherDeveloper

2
@MikeCheelでは、HKEY_USERS \ .DEFAULT \ Software \ Microsoft \ VisualStudio \ 14.0_Config \ MSBuild \ EnableOutOfProcBuildを設定して、すべてのユーザーのために修正できます:)
Ian Ellis

57

2017年6月14日現在の更新

Microsoft Visual Studio 2017インストーラープロジェクト拡張機能には、Microsoft Visual Studio 2017インストーラープロジェクトを適用するためのレジストリ設定をはるかに簡単にするコマンドラインヘルパーツールが含まれています。

ツールのパスの例(インストールされているVisual Studioのバージョンに基づく)

プロフェッショナル版: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe


コミュニティエディション: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe

READMEから


このシンプルなツールは、コマンドラインビルドを使用してインストーラープロジェクトをビルドするときに表示される可能性があるこのエラーを回避するために必要なレジストリキーをユーザーが設定できるようにすることを目的としています。

エラー:検証中にエラーが発生しました。HRESULT = '8000000A'

このツールはVisual Studio 2017以降を対象としており、現在のユーザーの特定のインストール済みVisual Studioインスタンスにこのregキーを設定します。したがって、ビルドエージェントでこれを設定する場合は、ビルドが使用するユーザーアカウントを必ず使用してください。

使用方法の詳細については、「DisableOutOfProcBuild.exeヘルプ」を実行してください。



4
これはVS2017に最適なソリューションです
Simon O'Beirne 2017

これは私がこの問題を抱えた3番目の時間だと思います。修正に何時間も費やし、そして最後にこの答えを再発見しました。ありがとう!
Hannes Sachsenhofer

2
dirを適切に機能させるには、その場所に変更する必要があります。参照github.com/it3xl/MSBuild-DevEnv-Build-Server-Workarounds/issues/...github.com/it3xl/MSBuild-DevEnv-Build-Server-Workarounds/blob/...
GilesDMiddleton

ビルドマシンでVisual Studio 2019 Community Editionを使用するのに最適です。
最大電力

48

私はこれについてオンラインでどこかを読んで、このように修正しました(誰かから提案されました)

  • セットアッププロジェクトファイル(.vdproj)をメモ帳(またはその他のテキストエディター)で開きます。
  • .vdprojファイルの先頭にあるこれらの行を削除します。

    "SccProjectName" = "8:"
    "SccLocalPath" = "8:"
    "SccAuxPath" = "8:"
    "SccProvider" = "8:"
  • 再度ビルド-エラーはなくなりました

このエラーが原因で、プロジェクトの展開、ビルド、デバッグ(またはなんらかの変更)が妨げられることはありませんでした。そして、私がすべてのプロジェクトを現在の構成でビルドするように設定し、セットアッププロジェクトをしないように設定しても、それは起こりました。


3
この問題の問題は、それが競合状態であることです。(ランダムに)調整して再構築すると、修正されたように見えます。再構築するだけでも問題は消えます。100ビルド後も「修正済み」のままかどうかを知りたいです。
oɔɯǝɹ

6
競合状態の可能性がありますが、上記の修正が機能し、私は自分の人生を
続ける

39

永続的なソリューション(+ビルドマシン用)

Visual Studio 2017

VS 2017の場合、ターゲットWindowsアカウントで次のCMDスクリプトを呼び出します。

コミュニティエディション
プロフェッショナルエディション
エンタープライズ エディション

TL; DR。貧乏人のためのメモ、DisableOutOfProcBuild.exe私がVS 2017に使用するマイクロソフトが提供するソリューション。

  1. DisableOutOfProcBuild.exeインストールフォルダから呼び出すことを想定していません。したがって、この.exeファイルをコピーすることはできません。(ちなみに、.vdprojをビルドする場合は、VSをインストールする必要があります。)
  2. DisableOutOfProcBuild.exe 現在のCMDディレクトリがDisableOutOfProcBuild.exeのインストール場所に設定されている場合にのみ機能します。

例として、VS Professionalエディションの場合、

CD "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild"
CALL DisableOutOfProcBuild.exe

Visual Studio 2015およびそれ以前

現在のWindowsユーザーのCMDによる

多くの人にとって、下での作成/修正HKEY_CURRENT_USER\..は必ずしも機能しない、または永続的に機能するわけではありません。
これを解決しようとすると、実際にはHKEY_USERSの下に奇妙なキーを作成/変更する必要があることがわかりました HKEY_USERS\S-1-5-xx-xxxxxxxxxx-xxxxxxxxx-xxxxxxxxxxx-xxxxx\...\MSBuild

しかしHKCU、提案された修正でCMDコンソールを使用する場合
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
、値がHKEY_CURRENT_USERではなく、奇妙なキーHKEY_USERS \ S-1-5-xx-xxxxxxxxxx-xx ...に正確に書き込まれることもわかりました。

したがって、これは最初のショットから、そして永遠に機能します。CMDコンソールを使用するだけです。

REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
@REM (use 12.0_Config for VS2013)

ビルドサーバーのソルバー

一方、このコードは、それを起動する現在のユーザーアカウントで常に機能します(HKEY_CURRENT_USERのため)。ただし、ビルドサーバーは専用アカウントまたはローカルシステムなどを使用することがよくあります。

次の単純なバッチファイルをビルドタスク(Jenkins、TeamCity、CruiseControl)に追加して、ビルドマシンで修正しました

VS-2015VS-2013VS-2017-CommunityVS-2017-ProfessionalVS-2017-Enterprise


1
reg evreyに2か月間パッチを適用した後、CMDファイルが一部のソリューションで正常に機能しない
CMS

1
ビルドサーバーでセットアッププロジェクトからMSIをビルドするときに、同じ問題が突然ポップアップしました。ビルドプロセスは常に以前は機能し、変更されていませんでしたが、一貫して失敗し始めました。これをdevenv.exeを呼び出す直前のビルドスクリプトに追加しました。VS2013で動作しました。ありがとうございました。
ジム、

VS 15.8.xでは、EXEを実行した後でもこのエラーが発生しますが、VSを閉じてからEXEを実行してからVSを再起動すると、エラーが解決します。したがって、VSの何かがreg設定をリセットしています。解決策は、VSを閉じ、DisableOutOfProcBuild.exeを再実行してからVSを起動することです。
user2728841

1
この修正は、VS2015 TFS vNextビルドで機能しました。自動ビルドにはローカルのNT Authority \ Network Serviceアカウントを使用するため、RDPingからビルドキーに手動でregキーを追加しても、自動ビルドエラーは修正されませんでした。VDPROJファイルのDevenv.comを呼び出すステップの直前にregキーを作成するステップを追加しました。これの修正を見つけるのに長い間苦労した後、私はit3xlに投稿してくれてありがとうございました!!!
ckkkitty

6

ここのコメント指摘されているよう、VS2017の場合、DWORD HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 15.0_ [IDKey] _Config \ MSBuild \ EnableOutOfProcBuild [IDKey]をVisualStudioの既存の15.0サブキーのIDサフィックスに置き換えます。 。

たとえば、VisualStudioの下に「15.0_abcd1234」というキーがある場合、「15.0_abcd1234_Config」になります。

regeditの例


5

ホットフィックスはここにアップロードされます:

http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=33186

あなたはそれについてここで読むことができます:

http://connect.microsoft.com/VisualStudio/feedback/details/595632/inconsistent-hanging-with-devenv-2010


回答でリンクした接続項目を読み取ることができるため、修正プログラムは機能しません。
oɔɯǝɹ

4

プロジェクトを別のPC(VS 2010、ソリューション内の複数のプロジェクト)に移動した後、この問題に直面しました。

プロジェクトはソースコンピューターで既にビルドされていますが、ターゲットにコピーした後、セットアッププロジェクトをビルドできず、このエラーが発生しました。

/Debugセットアッププロジェクトのルートパスの下にあるフォルダーを開くMyProject.msiと、setup.exeファイルがあり、ファイルを削除してプロジェクトを再度ビルドしましたが、うまくいきました。それがいくつかのフェラのためにも働くことを望みます。


もう1つ+ 1、.msiファイルとsetup.exeファイルを削除してセットアッププロジェクトを再構築すると、エラーメッセージが消えました
George

-1の場合、この問題は一時的にしか解決されないようです。ソリューションを再度開いた後、問題が再発しました
George

@ChrisSchiffhauerはそれを解決するために、あなただけがmsiとexeファイル削除しますか?
Kiquenet

@kubilayからよく言われました、あなたの解決策に感謝します!! プロジェクトのプロパティで新しいフレームワークのバージョンを設定するため、プロジェクトを古いフレームワークから新しいフレームワークに移植するときに、この問題が発生する可能性があります。おそらく、セットアッププロジェクトのターゲットの場所に.msiおよび.exeファイルが含まれている可能性があります。新しいフレームワークバージョンでは、既存のファイルを上書きするときにエラーが発生する可能性があります。したがって、セットアッププロジェクトを右クリックし、[出力ファイル名]に移動します([構成プロパティ] \ビルドの下)-> [...](参照)ボタンをクリックします->ターゲットの場所を取得し、.msiファイルと.exeファイルを削除します。ここでプロジェクトをビルドすると、動作するはずです。
Navin Pandit

1

プロジェクトの依存関係を確認すると役立つ場合があります。

VS 2010では、ソリューションエクスプローラーで右クリックし、[検出された依存関係]および[依存関係の更新]をクリックすると、問題が解決する場合があります。


1

私はVS 2017を使用していますが、上記のソリューションはどれも機能しません。したがって、VS 2017の最新バージョンをアップグレードし、@ AussieAshソリューションとその作業を適切に適用します...

この解決策がうまくいくことを願っています。


0

私の場合、間違った.suoファイルが原因でした。(skydriveが原因)このファイルを削除すると問題は解決しました。


DisableOutOfProcBuild.exeは、動作しないまでしばらく機能していました。.suoファイルを削除すると、問題が修正されました。
セゴ2018

0

Visual Studio 2017は、以前にパブリックレジストリに格納されていた情報を新しいプライベートレジストリ内に格納します:C:\ Users \\ AppData \ Local \ Microsoft \ VisualStudio \ 15.0_6de65198 \ privateregistry.bin

これは、VS2013 / VS2015の指示に従って、EnableOutOfProcBuildを追加する必要がある場所です。

プライベートレジストリを更新するには、Regeditを使用できます。

HKEY_USERSノードをクリックして選択します。

[ファイル]> [ハイブの読み込み]を選択し、privateregistry.binファイルに移動します。これを選択すると、Regeditは名前を要求します-すぐに完了するので、それを何と呼んでもかまいません。

レジストリ構造が表示され、Microsoft \ VisualStudio \ 15.0_Config \ MSBuildに移動できます

値0で新しいDWORD EnableOutOfProcBuildを作成します。

完了したら、ハイブのルート(以前に名前を付けたものは何でも)を選択し、[ファイル]> [ハイブのアンロード]を使用してハイブから切り離します。

今それはうまくいくはずです:o)


プライベートレジストリファイルをいじる必要はありません。通常のレジストリに15.0_ <x> _Configキーを自分で作成できます(上記を参照)
Night94

0

私のVisual Studio 2013はどういうわけか実験的なものになり、EnableOutOfProcBuildの別のレジストリキーの使用を開始しました

ここに画像の説明を入力してください

確かに、レジストリ値を設定するためのバッチファイルに別の行を追加しただけで、動作し始めました。

REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\12.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\12.0Exp_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f

0

このexeを実行するだけです

(Visual Studio 2017 Communityエディション)

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ CommonExtensions \ Microsoft \ VSI \ DisableOutOfProcBuild \ DisableOutOfProcBuild.exe

(Visual Studio 2017 Enterpriseエディション)

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ CommonExtensions \ Microsoft \ VSI \ DisableOutOfProcBuild \ DisableOutOfProcBuild.exe


0

さて、私は顔が青く、顔が赤くなり、髪を失い、頭を失うまでこの問題を調査し、見つけることができるすべてのステップを試しました。:-D

以下のための私のソリューションのVisual Studio 2017 /チームシティーは2からソリューションを組み合わせた@ it3xlからのいくつかの援助Night94 @

問題は、TeamCityユーザーのレジストリキーが欠落していることのようです。

したがって、解決策は、MSBuildの前にTeamCityからコマンドラインビルドステップとして次を追加することでした。

REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\15.0_2c79e3fe_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f

このステップが実行されたら、必要に応じて削除できます。

ソリューションの概要

どちらか:

  • DisableOutOfProcBuild.exe TeamCityユーザーとして実行する、または
  • レジストリキーに移動し、HKCU\SOFTWARE\Microsoft\VisualStudioリストされているバージョンを確認しREG ADDてから_Config、TeamCityビルドの手順として、バージョンを一致させるように上記を修正します(を追加することを忘れないでください)。

繰り返しますが、上記は一度だけ実行する必要があります。問題が再度発生した場合に参照できるように、TeamCityにステップインすることを無効にすることができます。


0

ステップ-1「次のパスで「EnableOutOfProcBuild」という名前のDWORDキーを作成し、その値を「0」に設定しました

HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild

注:プロジェクトをビルドしようとしているのと同じユーザーでログインしていることを確認してください

それは私にとってはうまくいきます。


-1

今日この問題が発生した場合は、Visual Studioを再起動してみてください。それができない場合は、新しいプロジェクトを作成して保存し、問題のプロジェクトからファイルをコピーしてください。どちらの方法でもうまくいきました。


-3

最初にソリューションをクリーンアップし、ソリューションをビルドしてから、インストーラーをビルドしてください。エラーを取り除きます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.