validation时发生错误。 HRESULT ='8000000A'

在自动构build中使用devenv时,我一直收到这个错误。 我经历了每一个我能find的网站,通常的答案提到了刷新的依赖关系(我相信这是为了手动部署而不是自动化的),并从项目中移除源代码控制编码,这对我没有帮助。

每次构build时都不会出现错误,但每次在不同的部署项目上都会出现这种错误。

有没有人有任何build议,为什么这个错误发生,以及如何去解决它?

这是Visual Studio 2010中的一个已知问题(竞态条件)。 看到这个连接项目 。

我们也遇到了这个问题,并且与微软就这个问题提出了非常不满意的支持。 长话短说:这是一个已知的问题,它不会被解决,微软build议摆脱Visual Studio安装项目(.vdproj)。

我们已经解决了这个问题,当它第一次失败时,通过触发MSI构build第二次。 不好,但是大部分时间都有效(错误率从〜10%下降到〜1%)。

使用Microsoft Visual Studio Installer Projects扩展升级VS200X安装项目后,更新VS2013或VS2015的这个问题。

从MS MSDN v1.0.0.0的配方终于使它为我工作:

Microsoft Visual Studio安装程序项目

不幸的是,我们无法解决这个版本的命令行问题的所有情况,因为我们仍在调查解决这些问题的适当方式。 我们所做的是一种解决方法,我们相信它们几乎可以为所有这些解决scheme工作。 如果您仍然遇到此问题,则可以尝试将以下registry值的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)
如果这不存在,可以将其创build为DWORD。

我在网上看了一些关于这个的地方,我已经解决了这个问题(有人build议)

  • 在记事本(或任何其他文本编辑器)中打开您的安装项目文件(.vdproj)
  • 在.vdproj文件的开头删除这些行:

     "SccProjectName" = "8:" "SccLocalPath" = "8:" "SccAuxPath" = "8:" "SccProvider" = "8:" 
  • 再次build立 – 错误消失了

这个错误并没有阻止我部署,构build,debugging(或任何)我的项目,只是使我恼火。 即使我将所有的项目设置为当前configuration,并且安装项目都不是,也是如此。

由CMD为当前用户解决

对于许多人来说,在HKEY_CURRENT_USER\..下创build/更正并不总是可行的。
试图解决这个问题,我发现其实我必须创build/更改HKEY_USERS HKEY_USERS\S-1-5-xx-xxxxxxxxxx-xxxxxxxxx-xxxxxxxxxxx-xxxxx\...\MSBuild下的一些奇怪的键

但我也发现,如果我将使用CMD控制台与build议的修复
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
这将写入这些奇怪的关键HKEY_USERS \ S-1-5-xx-xxxxxxxxxx-xx … ,而不是HKEY_CURRENT_USER的值

所以,这是从第一枪。 只需使用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) 

build立服务器的求解器

另一方面,此代码始终适用于启动它的当前用户帐户(因为HKEY_CURRENT_USER)。 但是构build服务器通常使用其他帐户(本地系统等)。

我通过添加一个简单的batch file来构build任务,将其固定在我的构build机器上。

正如在这里的评论中指出的,对于VS2017,您将需要创buildDWORD HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 15.0_ [IDKey] _Config \ MSBuild \ EnableOutOfProcBuild将[IDKey]replace为VisualStudio现有15.0子项的ID后缀。

例如,如果在VisualStudio下看到关键字“15.0_abcd1234”,它将是“15.0_abcd1234_Config”。

注册表示例

在将我的项目移至另一台PC(VS 2010,解决scheme中的多个项目)之后,我遇到了这个问题。

它已经在源计算机上build立了我的项目,但是在我复制到目标后,我无法构build我的安装项目并出现此错误。

我打开了我的安装项目根path下的/Debug文件夹,有MyProject.msisetup.exe文件,我删除了它们并重新构build了我的项目,它工作。 希望它也适用于一些家伙。

更新截至6/14/2017

Microsoft Visual Studio 2017安装程序项目扩展现在包括一个命令行帮助程序工具,使registry设置更容易应用Microsoft Visual Studio 2017安装程序项目

示例pathC:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ CommonExtensions \ Microsoft \ VSI \ DisableOutOfProcBuild

从README


这个简单的工具是为了帮助用户设置所需的registry项,以解决使用命令行构build构build安装程序项目时可能出现的此错误:

错误:validation时发生错误。 HRESULT ='8000000A'

该工具适用于Visual Studio 2017+,并为当前用户的特定已安装Visual Studio实例设置此registry项。 所以,如果你在一个构build代理上设置它,请确保使用构build将使用的用户帐户。

运行“DisableOutOfProcBuild.exe帮助”以获取使用详细信息。


检查项目依赖关系可能会有所帮助。

在VS 2010中,右键单击您的解决scheme资源pipe理器,然后单击“检测到的依赖项”和“刷新依赖项”,有时可以解决问题。

Visual Studio 2017将以前存储在公用registry中的信息存储在新的私有registry中:C:\ Users \\ AppData \ Local \ Microsoft \ VisualStudio \ 15.0_6de65198 \ privateregistry.bin

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

要更新私人registry,您可以使用Regedit。

单击以selectHKEY_USERS节点。

selectFile> Load Hive并导航到privateregistry.bin文件。 当你select它时,Regedit会要求一个名字 – 不pipe你怎么称呼它,因为我们很快就会完成。

现在将出现registry结构,您可以导航到Microsoft \ VisualStudio \ 15.0_Config \ MSBuild

创build一个值为0的新的DWORD EnableOutOfProcBuild。

完成后,selectconfiguration单元的根目录(不pipe你之前命名的是什么),然后使用File> Unload Hive从它分离。

现在它应该工作:o)

与我这是由一个错误的.suo文件引起的。 (由skydrive引起)删除这个文件解决了这个问题。

如果今天有这个问题,请尝试重新启动Visual Studio,如果不这样做,则创build一个新项目,保存它,然后将问题项目中的文件复制过来。 两种方法都为我工作。

请先清理解决scheme,构build解决scheme,然后尝试构build安装程序。 它将删除错误。