.net 驗證時發生錯誤。 HRESULT='8000000A'




visual-studio-2010 windows-installer (12)

在自動構建中使用devenv時,我一直在收到此錯誤。 我已經瀏覽了我可以找到的每個網站,並且通常的答案提到刷新依賴關係(我相信它可以修復它以進行手動部署,但不能自動修復),並從項目中刪除源代碼控制代碼,這對我沒有幫助。

每次構建時都不會發生該錯誤,但每次在不同的部署項目中似乎都是隨機的。

有沒有人有任何建議,為什麼這個錯誤發生,以及如何去解決它?


升級VS200X安裝項目後,使用Microsoft Visual Studio Installer Projects擴展程序更新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。


截至2017年6月14日更新

Microsoft Visual Studio 2017安裝程序項目擴展現在包括一個命令行幫助程序工具,用於使註冊表設置更容易應用Microsoft Visual Studio 2017安裝程序項目

工具的示例路徑(基於安裝的Visual Studio版本)

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


Community Edition: 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實例設置此註冊表項。 所以,如果你在一個構建代理上設置它,請確保使用該構建將使用的用戶帳戶。

運行“DisableOutOfProcBuild.exe幫助”以獲取使用細節。



檢查項目依賴性可能會有所幫助。

在VS 2010中,右鍵單擊您的解決方案資源管理器,然後單擊檢測到的依賴項和刷新依賴項,它有時可以解決問題。


正如在here的評論中指出的那樣,對於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”。


與我一起,這是由一個錯誤的.suo文件引起的。 (由skydrive引起)刪除這個文件解決了這個問題。


如果今天有這個問題,請嘗試重新啟動Visual Studio,如果不這樣做,請創建一個新項目並保存,然後將問題項目中的文件複製過來。 兩種方法都適用於我。


請首先清理解決方案,構建解決方案並嘗試構建安裝程序。 它將刪除錯誤。


將項目移至另一台PC後(VS 2010,解決方案中的多個項目),我遇到了這個問題。

它已經在源計算機中構建了我的項目,但在復製到目標後,我無法構建我的安裝項目並出現此錯誤。

我打開了我的安裝項目根路徑下的/Debug文件夾,裡面有MyProject.msisetup.exe文件,我刪除了它們並重新構建了我的項目,它工作正常。 希望它也適用於一些傢伙。


這是Visual Studio 2010中的一個已知問題(競態條件)。 看到這個連接項目

我們也遇到了這個問題,並且與微軟就此問題提出了非常不滿意的支持。 長話短說:這是一個已知的問題,它不會被解決,並且微軟建議從Visual Studio安裝項目(.vdproj)移開。

我們通過在第一次失敗時再次觸發MSI構建來解決此問題。 不好,但大部分時間都有效(錯誤率從〜10%下降到〜1%)。


我的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

Visual Studio 2017將先前存儲在公共註冊表中的信息存儲在新的專用註冊表中:C:\ Users \\ AppData \ Local \ Microsoft \ VisualStudio \ 15.0_6de65198 \ privateregistry.bin

這是您需要按照VS2013 / VS2015的說明添加EnableOutOfProcBuild的地方。

要更新私人註冊表,您可以使用Regedit。

單擊以選擇HKEY_USERS節點。

選擇File> Load Hive並導航到privateregistry.bin文件。 當你選擇它時,Regedit會要求一個名字 - 不管你怎麼稱呼它,因為我們很快就會完成。

現在將出現註冊表結構,您可以導航到Microsoft \ VisualStudio \ 15.0_Config \ MSBuild

創建一個值為0的新DWORD EnableOutOfProcBuild。

完成後,選擇配置單元的根目錄(無論您以前命名它),然後使用文件>卸載配置單元將其從中分離。

現在它應該工作:o)





hresult