Doğrulama sırasında bir hata oluştu. HRESULT = '8000000A'


98

Otomatik derlemede devenv kullanırken bir süredir bu hatayı alıyorum. Bulabildiğim her web sitesini inceledim ve her zamanki yanıtlar, yenilenen bağımlılıklardan (bunu manuel dağıtım için düzelttiğine inanıyorum, ancak otomatik olarak değil) ve projelerden kaynak kontrol kodlamasının kaldırılmasından bahsediyor, bu da bana yardımcı olmadı.

Hata her derlediğimde ortaya çıkmıyor, ancak her seferinde farklı dağıtım projelerinde rastgele görünüyor.

Bu hatanın tam olarak neden oluştuğu ve nasıl düzeltileceği konusunda herhangi bir tavsiyesi olan var mı?


sonunda daha şık bir çözüm buldunuz mu? Sadece olmuştur yeniden tetikleme başarısız olduğunda yapı , belki yararlı koymak komut dosyası ( elegant solutionve özü), IMHO.
Kiquenet

Yanıtlar:


53

Bu, Visual Studio 2010'da (bir yarış durumu) bilinen bir sorundur. Bu bağlantı öğesine bakın .

Bununla da karşılaştık ve Microsoft ile bu konuda çok tatmin edici olmayan bir destek çağrısı aldık. Uzun lafın kısası: Bu bilinen bir sorun, çözülmeyecek ve Microsoft, Visual Studio Kurulum projelerinden (.vdproj) uzaklaşmanızı tavsiye ediyor.

MSI derlemesini ilk kez başarısız olduğunda ikinci kez tetikleyerek bu sorunu çözdük. Hoş değil, ancak çoğu zaman işe yarıyor (hata oranı ~% 10'dan ~% 1'e düştü).


Çok teşekkür ederim. Tam olarak neden olduğunu bulmak için interneti tarıyordum ve en azından belirsiz ve yararsız olan sayısız Microsoft yanıtına rastladım. Başarısız olduğunda yapıyı yeniden tetikliyordum, ancak daha zarif bir çözüm umuyordum. Tekrar teşekkürler.
Chris C.

@ChrisC. stackoverflow.com/a/25054572/206730 yanıtında daha fazla oy var, böyle denediniz mi?
Kiquenet

@ oɔɯǝɹ MSI derlemesini ikinci kez tetikleyerek ne demek istediğinizi açıklayabilir misiniz ?, aynı sorunu yaşayın ..
Leon Barkan

123

Microsoft Visual Studio Installer Projects uzantısını kullanarak bir VS200X kurulum projesini yükselttikten sonra VS2013 veya VS2015 için bu sorunu yaşayanlar için güncelleştirme.

MS'den v1.0.0.0 tarifinin ardından nihayet benim için çalışmasını sağladı:

Microsoft Visual Studio Yükleyici Projeleri

Maalesef, bu sürümle ilgili tüm komut satırı sorunlarına yanıt veremedik, çünkü bunları gidermenin uygun yolunu hala araştırıyoruz. Elimizdeki şey, neredeyse hepsi için işe yarayacağına inandığımız bir çözüm. Hala bu sorunu yaşıyorsanız, aşağıdaki kayıt defteri değerinin DWORD değerini 0 olarak değiştirmeyi deneyebilirsiniz: HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0_Config\MSBuild\EnableOutOfProcBuild (VS2013)
veya
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MSBuild\EnableOutOfProcBuild(VS2015)
Bu yoksa, bir DWORD olarak oluşturabilirsiniz.


23
Visual Studio 2013 güncellemelerinin bu değişkeni kayıt defterinizden sileceğini unutmayın - Yeniden eklemeniz gerekecek.
Derek W

4
Bir not, Jenkins ile çalışırken, Jenkins slave'leri çalıştıran kullanıcı için kayıt defteri anahtarının eklenmesi gerekir.
Jirong Hu

3
DİKKAT EDİN kayıt defteri kovanı HKEY_CURRENT_USER olduğundan, bu sizden farklı bir hesap tarafından çağrılıyorsa (örn. Tfs oluşturma hesabı), BU hesap olarak oturum açmanız ve ayarı eklemeniz gerekir.
Mike Cheel

3
@DerekW yorumlarına eklemek için bu, otomatik güncellemelerle de silinebilir.
JustAnotherDeveloper

2
@MikeCheel, HKEY_USERS \ .DEFAULT \ Software \ Microsoft \ VisualStudio \ 14.0_Config \ MSBuild \ EnableOutOfProcBuild'i tüm kullanıcılar için düzeltmek üzere ayarlayabilirsiniz :)
Ian Ellis

58

6/14/2017 itibarıyla güncelleme

Microsoft Visual Studio 2017 Yükleyici Projeleri uzantısı artık kayıt defteri ayarını Microsoft Visual Studio 2017 Yükleyici Projelerini uygulamak için çok daha kolay hale getirmek için bir komut satırı yardımcısı aracı içeriyor

Aracın örnek yolları (yüklü Visual Studio sürümüne göre)

Profesyonel Sürüm: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe


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

BENİOKU'dan


Bu basit araç, kullanıcıların komut satırı yapılarını kullanarak yükleyici projeleri oluştururken ortaya çıkabilecek bu hatayı aşmak için gereken kayıt defteri anahtarını ayarlamalarına yardımcı olmayı amaçlamaktadır:

HATA: Doğrulama sırasında bir hata oluştu. HRESULT = '8000000A'

Araç, Visual Studio 2017+ içindir ve bu reg anahtarını geçerli kullanıcı için belirli bir yüklü Visual Studio örneği için ayarlar. Dolayısıyla, bunu bir derleme aracısında ayarlıyorsanız, yapının kullanacağı kullanıcı hesabını kullandığınızdan emin olun.

Kullanım ayrıntıları için "DisableOutOfProcBuild.exe yardım" ı çalıştırın.



5
Bu, VS2017 için en iyi çözüm
Simon

1
Sanırım bu sorunu üçüncü kez yaşadım, düzeltmek için saatler harcadım ve sonunda bu cevabı yeniden keşfetmeye çalıştım. Teşekkürler!
Hannes Sachsenhofer


1
Derleme makinemde Visual Studio 2019 Community Edition'ı kullanmak benim için mükemmel.
Maksimum Güç

48

Bunun hakkında çevrimiçi bir yerde okudum ve bunu şu şekilde düzelttim (biri tarafından önerildi) :

  • kurulum projesi dosyanızı (.vdproj) not defterinde (veya başka bir metin düzenleyicide) açın
  • .vdproj dosyasının başındaki şu satırları silin:

    "SccProjectName" = "8:"
    "SccLocalPath" = "8:"
    "SccAuxPath" = "8:"
    "SccProvider" = "8:"
  • tekrar inşa et - hata gitti

Bu hata, projemi dağıtmamı, oluşturmamı, hata ayıklamamı (veya herhangi bir şeyi) engellemedi, bu beni sinirlendirdi. Ve tüm projeleri mevcut bir konfigürasyonda inşa edilecek ve kurulum projesi yapmayacak şekilde ayarlasam bile geldi.


3
Konuyla ilgili sorun, bunun bir yarış durumu olması. (Rastgele) bir ayarlama yapmak ve yeniden inşa etmek, düzeltilmiş gibi görünmesini sağlayacaktır. Sadece yeniden inşa etmek de sorunu ortadan kaldırırdı. 100 derlemeden sonra 'sabit' kalıp kalmayacağını bilmek isterim.
oɔɯǝɹ

6
Bir yarış durumu olabilir, ancak yukarıdaki düzeltme işe yarıyor ve hayatıma devam etmeme izin veriyor (bir sonraki soruna kadar yığın
taşmamı sağladı

39

Kalıcı çözüm (+ inşaat makineleri için)

Visual Studio 2017

VS 2017 için, hedef Windows hesabınız altında aşağıdaki CMD komut dosyalarını çağırın:

Topluluk sürümü
Professional sürümü
Enterprise sürümü

TL; DR. Yoksullar için notlar DisableOutOfProcBuild.exe, Microsoft'un VS 2017 için kullandığım sunduğu çözüm.

  1. DisableOutOfProcBuild.exeonu kurulum klasöründen çıkaracağınızı varsaymaz . Yani, bu .exe dosyasını kopyalayamazsınız. (Bu arada, .vdproj oluşturmak istiyorsanız VS'yi yüklemelisiniz.)
  2. DisableOutOfProcBuild.exe yalnızca geçerli CMD dizini DisableOutOfProcBuild.exe'nin yükleme konumuna ayarlanmışsa çalışır.

Örnek olarak, VS Professional sürümü için aramalıyız

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

Visual Studio 2015 ve öncesi

mevcut Windows kullanıcısı için CMD tarafından

Birçok insan için yaratma / düzeltme HKEY_CURRENT_USER\.., her zaman çalışmaz veya kalıcı olarak çalışmaz.
Bunu çözmeye çalışırken, aslında HKEY_USERS altında bazı garip anahtarlar oluşturmam / değiştirmem gerektiğini fark ettim. HKEY_USERS\S-1-5-xx-xxxxxxxxxx-xxxxxxxxx-xxxxxxxxxxx-xxxxx\...\MSBuild

Ancak HKCU, önerilen düzeltmeyle bir CMD konsolu
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
kullanacaksam, bu değeri tam olarak HKEY_CURRENT_USER'a değil, HKEY_USERS \ S-1-5-xx-xxxxxxxxxxxx-xx ... tuhaf anahtarına yazacağını buldum .

Yani, bu ilk atıştan itibaren ve sonsuza kadar işe yarar. CMD konsolunu kullanmanız yeterlidir.

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)

Derleme Sunucuları için Çözücü

Öte yandan, bu kod her zaman onu başlatan mevcut bir kullanıcı hesabı için çalışır (HKEY_CURRENT_USER nedeniyle). Ancak derleme sunucuları genellikle özel hesaplar veya Yerel Sistem vb. Kullanır.

Aşağıdaki basit toplu iş dosyasını derleme görevlerime ekleyerek derleme makinelerimde düzelttim (Jenkins, TeamCity, CruiseControl)

VS-2015 , VS-2013 , VS-2017-Community , VS-2017-Professional , VS-2017-Enterprise


1
Reg evrey'i birkaç aydır yamaladıktan sonra 2 yıldır ve CMD dosyası iyi çalışmıyor bir çözüm
CMS

1
Bir yapı sunucusunda kurulum projesinden bir MSI oluştururken aynı sorun birdenbire ortaya çıktı. Yapım süreci daha önce her zaman çalıştı ve değişmedi, ancak tutarlı bir şekilde başarısız olmaya başladı. Bunu, devenv.exe çağrısından hemen önce derleme betiğine ekledim ve benim için VS 2013'te çalıştı. Çok teşekkürler.
Jim

VS 15.8.x'te, EXE'yi çalıştırdıktan sonra bile bu hatayı alıyorum, ancak VS'yi kapatıp EXE'yi çalıştırıp ardından VS'yi yeniden başlatarak, hata çözüldü. Dolayısıyla, VS'deki bir şey reg ayarını sıfırlıyor ve çözüm VS'yi kapatmak, DisableOutOfProcBuild.exe'yi yeniden çalıştırmak ve ardından VS'yi başlatmaktır.
user2728841

1
Bu düzeltme VS2015 TFS vNext derlemeleri için çalıştı. Otomatik derlemeler için yerel NT Authority \ Network Service hesabını kullanıyoruz, bu nedenle RDPing'den reg anahtarını derleme VM'sine manuel olarak eklemek otomatik derleme hatasını düzeltmedi. VDPROJ dosyası için Devenv.com'u arama adımından hemen önce reg anahtarını oluşturma adımını ekledim. Bunun için bir düzeltme bulmak için bu kadar uzun süre uğraştıktan sonra, bunu gönderdiğiniz için çok teşekkür etmek istiyorum!
ckkkitty

6

Buradaki yorumlarda belirtildiği gibi , VS2017 için DWORD HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 15.0_ [IDKey] _Config \ MSBuild \ EnableOutOfProcBuild [IDKey] 'i VisualStudio'nun mevcut 15.0 alt anahtarının kimlik sonekiyle değiştirin. .

Örneğin, VisualStudio altında "15.0_abcd1234" anahtarını görürseniz, bu "15.0_abcd1234_Config" olacaktır.

regedit örneği



4

Projemi başka bir bilgisayara taşıdıktan sonra bu sorunla karşılaştım (VS 2010, bir çözümde birden fazla proje).

Projem zaten kaynak bilgisayarda oluşturulmuştu ancak hedefe kopyaladıktan sonra Kurulum Projemi oluşturamadım ve bu hatayı alamadım.

Ben açtı /Debug, benim Kurulum Projesi Kök yolunda klasör vardı MyProject.msive setup.exeben onları silinir ve tekrar projemi inşa, dosyalar, işe yaradı. Umarım bazı arkadaşlar için de işe yarar.


bir +1 daha, sadece .msi ve setup.exe dosyalarını silmek ve kurulum projesini yeniden oluşturmak hata mesajının kaybolmasına neden oldu
George

ve bir -1, bu sorunu yalnızca geçici olarak çözüyor gibi görünüyor, çözümü yeniden açtıktan sonra sorun yeniden ortaya çıktı
George

Çözmek için @ChrisSchiffhauer, sadece msi ve exe dosyalarını siliyorsunuz ?
Kiquenet

@Kubilay tarafından söylendi, çözümünüz için çok teşekkürler !! Bu sorun, proje özelliklerinde daha yeni çerçeve sürümü belirlediğimiz için projeleri eski çerçeveden yeni çerçeveye taşırken ortaya çıkabilir. Muhtemelen, kurulum projesi hedef konumunda .msi ve .exe dosyalarını içerebilir. Yeni çerçeve sürümü ile, çıkan dosyaların üzerine yazılırken hata oluşturabilir. Bu nedenle, kurulum projesine sağ tıklayın -> 'Çıktı dosyası adı'na gidin (Yapılandırma Özellikleri \ Oluştur altında) ->' ... '(gözat) düğmesine tıklayın -> hedef konumu alın ve .msi ve .exe dosyalarını silin . Şimdi projeyi inşa edin ve çalışmalıdır.
Navin Pandit

1

Proje bağımlılıklarını kontrol etmek yardımcı olabilir.

VS 2010'da çözüm gezgininize sağ tıklayın ve ardından Algılanan Bağımlılıklar ve Yenile Bağımlılıkları'na tıklayın, bazen sorunu çözer.


1

VS 2017 kullanıyorum ancak yukarıdaki çözümlerden hiçbiri çalışmıyor. Bu nedenle, VS 2017'nin en son sürümü yükseltildi ve @AussieAsh çözümünü uygulayın ve çalışması iyi ...

Umarım bu çözüm birileri işe yarayabilir.


0

benim için yanlış bir .suo dosyasından kaynaklanıyordu. (skydrive'ın neden olduğu) bu dosyayı silmek sorunu çözdü.


DisableOutOfProcBuild.exe, çalışmayana kadar bir süre çalıştı. .Suo dosyasını silmek sorunu çözdü.
Sego

0

Visual Studio 2017, önceden genel kayıt defterinde depolanan bilgileri yeni bir özel kayıt defterinde depolar: C: \ Users \\ AppData \ Local \ Microsoft \ VisualStudio \ 15.0_6de65198 \ privateregistry.bin

Burası, VS2013 / VS2015 yönergelerine göre EnableOutOfProcBuild'i eklemeniz gereken yerdir.

Özel kayıt defterini güncellemek için Regedit'i kullanabilirsiniz.

HKEY_USERS düğümünü seçmek için tıklayın.

Dosya> Yığını Yükle'yi seçin ve privateregistry.bin dosyasına gidin. Bunu seçtiğinizde Regedit size bir isim soracaktır - ne ad verdiğiniz önemli değil, çünkü yakında işimiz bitecek.

Şimdi kayıt defteri yapısı görünecek ve Microsoft \ VisualStudio \ 15.0_Config \ MSBuild'e gidebilirsiniz.

0 değeriyle yeni bir DWORD EnableOutOfProcBuild oluşturun.

Bittiğinde, kovanın kökünü seçin (daha önce adlandırdığınız şeyi) ve ondan ayırmak için Dosya> Yığını Kaldır'ı kullanın.

Şimdi çalışmalı: o)


Özel kayıt dosyasıyla uğraşmanıza gerek yok, 15.0_ <x> _Config anahtarını normal kayıt defterinde kendiniz oluşturabilirsiniz (yukarıya bakın)
Night94

0

Visual Studio 2013'üm bir şekilde Deneysel hale geldi, bu yüzden EnableOutOfProcBuild için başka bir kayıt defteri anahtarı kullanmaya başladı

görüntü açıklamasını buraya girin

Kayıt defteri değerini ayarlamak için toplu dosyama başka bir satır eklediğimden ve çalışmaya başladığından emin olmak için:

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

Sadece bu exe'yi çalıştır

(Visual Studio 2017 Community sürümü)

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

(Visual Studio 2017 Enterprise sürümü)

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


0

Tamam, yüzüm mavi, yüzüm kırmızı, saçlarımı kaybeden ve aklımı kaybedene kadar bu konuya baktım ve bulabildiğim her adımı denedim. :-D

Benim çözüm Visual Studio 2017 / TeamCity iki çözümleri bir arada oldu @ it3xl ve bazı yardım Night94 @ .

Sorun, TeamCity kullanıcısı için kayıt defteri anahtarının eksik olması gibi görünüyordu .

  • DisableOutOfProcBuild.exe @AussieAsh tarafından belirtildiği gibi çalıştırmak , bu nedenle yalnızca kullanıcım için kayıt defteri anahtarını eklediğinden çalışmadı.
  • @ it3xl tarafından bahsedilen komut dosyasını kullanmak , TeamCity'den çalıştırıldığında da başarısız oldu

Bu nedenle çözüm, MSBuild'den önce TeamCity'den bir komut satırı oluşturma adımı olarak aşağıdakileri eklemekti:

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

Bu adım çalıştırıldıktan sonra, gerekirse kaldırılabilir.

Çözüm özeti

Ya:

  • DisableOutOfProcBuild.exe TeamCity kullanıcısı olarak çalıştırın veya
  • kayıt defteri anahtarına gidin HKCU\SOFTWARE\Microsoft\VisualStudiove listelenen sürümü kontrol edin, ardından TeamCity yapısında bir adım olarak REG ADDsürümlerle eşleşecek şekilde (eklemeyi unutmayın _Config) yukarıdakileri değiştirin .

Yine yukarıdakilerin yalnızca bir kez yapılması gerekir. TeamCity'de adım atmayı devre dışı bırakarak sorunla tekrar karşılaşırsanız referans için bırakabilirsiniz.


0

Adım-1 " EnableOutOfProcBuild " adıyla bir DWORD anahtarı oluşturdum "ve değerini aşağıdaki yolda " 0 "olarak ayarladım

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

Not: Projeyi oluşturmaya çalıştığınız kullanıcıyla oturum açtığınızdan emin olun.

Benim için iyi çalışıyor.


-1

Bugün bu sorunu yaşadıysanız, Visual Studio'yu yeniden başlatmayı deneyin, bu işe yaramazsa, yeni bir proje oluşturun, kaydedin ve ardından sorunlu projedeki dosyaları kopyalayın. her iki yöntem de benim için çalıştı.


-3

Lütfen önce çözümü temizleyin, çözümü oluşturun ve ardından yükleyiciyi oluşturmaya çalışın. Hatayı ortadan kaldıracaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.