Đã xảy ra lỗi khi xác thực. HRESULT = '8000000A'


98

Tôi đã nhận được lỗi này trong một thời gian khi sử dụng devenv trên bản dựng tự động. Tôi đã xem qua mọi trang web mà tôi có thể tìm thấy và các câu trả lời thông thường đề cập đến việc làm mới các phần phụ thuộc (mà tôi tin rằng nó sẽ sửa chữa nó để triển khai thủ công, nhưng không phải cho tự động) và xóa mã kiểm soát nguồn khỏi các dự án, điều này không giúp được tôi.

Lỗi không xảy ra mỗi khi tôi xây dựng, nhưng nó có vẻ ngẫu nhiên trên các dự án triển khai khác nhau mỗi lần.

Có ai có bất kỳ lời khuyên về lý do chính xác lỗi này xảy ra và làm thế nào để sửa chữa nó?


cuối cùng bạn đã nhận được giải pháp thanh lịch hơn bạn vừa kích hoạt lại bản dựng khi nó không thành công , Có thể hữu ích put script ( elegant solution) in gist, IMHO.
Kiquenet

Câu trả lời:


53

Đây là một sự cố đã biết trong Visual Studio 2010 (một điều kiện cuộc đua). Xem mục kết nối này .

Chúng tôi cũng đã gặp phải vấn đề này và đã có một cuộc gọi hỗ trợ rất không hài lòng về vấn đề này với Microsoft. Tóm lại: đó là một vấn đề đã biết, nó sẽ không được giải quyết và Microsoft khuyên bạn nên tránh xa các dự án Thiết lập Visual Studio (.vdproj).

Chúng tôi đã giải quyết vấn đề này bằng cách kích hoạt bản dựng MSI lần thứ hai khi nó không thành công lần đầu tiên. Không đẹp, nhưng nó hoạt động hầu hết thời gian (tỷ lệ lỗi giảm từ ~ 10% xuống ~ 1%).


Cảm ơn rât nhiều. Tôi đã lùng sục trên internet để tìm hiểu chính xác lý do tại sao điều đó lại xảy ra, và gặp rất nhiều câu trả lời của Microsoft rất mơ hồ và vô ích, ít nhất là. Tôi vừa kích hoạt lại bản dựng khi nó không thành công, nhưng hy vọng có một giải pháp tốt hơn. Cảm ơn một lần nữa.
Chris C.

@ChrisC. stackoverflow.com/a/25054572/206730 câu trả lời có nhiều phiếu bầu hơn, bạn đã thử như vậy chưa?
Kiquenet

@ oɔɯǝɹ bạn có thể explane những gì bạn có ý nghĩa bởi Saing kích hoạt MSI xây dựng một lần thứ hai ?, có cùng một vấn đề ..
Leon Barkan

122

Cập nhật cho những người gặp sự cố này cho VS2013 hoặc VS2015 sau khi nâng cấp dự án thiết lập VS200X bằng cách sử dụng tiện ích mở rộng Microsoft Visual Studio Installer Projects.

Làm theo công thức cho v1.0.0.0 từ MS cuối cùng đã làm cho nó hoạt động với tôi:

Dự án trình cài đặt Microsoft Visual Studio

Rất tiếc, chúng tôi không thể giải quyết tất cả các trường hợp về sự cố dòng lệnh cho bản phát hành này vì chúng tôi vẫn đang điều tra cách thích hợp để giải quyết chúng. Những gì chúng tôi có là một cách giải quyết mà chúng tôi tin rằng sẽ hiệu quả với hầu hết tất cả chúng. Nếu bạn vẫn gặp phải sự cố này thì bạn có thể thử thay đổi giá trị DWORD cho giá trị đăng ký sau thành 0: HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0_Config\MSBuild\EnableOutOfProcBuild (VS2013)
hoặc
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MSBuild\EnableOutOfProcBuild(VS2015)
Nếu điều này không tồn tại, bạn có thể tạo nó dưới dạng DWORD.


23
Lưu ý rằng các bản cập nhật Visual Studio 2013 sẽ xóa biến này khỏi sổ đăng ký của bạn - Bạn sẽ cần phải thêm lại nó.
Derek W

4
Chỉ cần lưu ý, khi làm việc với Jenkins, khóa đăng ký cần được thêm vào cho người dùng đang chạy Jenkins nô lệ.
Jirong Hu

3
GIỮ TRONG TÂM, tổ chức đăng ký là HKEY_CURRENT_USER vì vậy nếu tài khoản này đang được gọi bởi một tài khoản khác với bạn (ví dụ: tài khoản xây dựng tfs), bạn sẽ cần đăng nhập bằng tài khoản ĐÓ và thêm cài đặt.
Mike Cheel

3
Để thêm vào nhận xét @DerekW, điều này cũng có thể bị xóa bằng cập nhật tự động.
JustA AnotherDeveloper

2
@MikeCheel bạn có thể đặt HKEY_USERS \ .DEFAULT \ Software \ Microsoft \ VisualStudio \ 14.0_Config \ MSBuild \ EnableOutOfProcBuild để sửa nó cho tất cả người dùng :)
Ian Ellis

57

Cập nhật tính đến ngày 14/6/2017

tiện ích mở rộng Microsoft Visual Studio 2017 Installer Projects hiện bao gồm một công cụ trợ giúp dòng lệnh để làm cho cài đặt sổ đăng ký áp dụng Microsoft Visual Studio 2017 Installer Projects dễ dàng hơn nhiều

Đường dẫn mẫu của công cụ (dựa trên phiên bản Visual Studio được cài đặt)

Phiên bản chuyên nghiệp: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe


Ấn bản cộng đồng: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe

Từ README


Công cụ đơn giản này nhằm giúp người dùng đặt khóa đăng ký cần thiết để khắc phục lỗi này có thể xuất hiện khi xây dựng các dự án trình cài đặt bằng cách sử dụng các bản dựng dòng lệnh:

LỖI: Đã xảy ra lỗi khi xác thực. HRESULT = '8000000A'

Công cụ này dành cho Visual Studio 2017+ và đặt khóa reg này cho phiên bản Visual Studio cụ thể đã cài đặt cho người dùng hiện tại. Vì vậy, nếu bạn đang đặt điều này trên một đại lý bản dựng, hãy đảm bảo sử dụng tài khoản người dùng mà bản dựng sẽ sử dụng.

Chạy "Trợ giúp DisableOutOfProcBuild.exe" để biết chi tiết sử dụng.



4
Đây là giải pháp tốt nhất cho VS2017
Simon O'Beirne

Tôi nghĩ đây là lần thứ ba tôi gặp sự cố này, đã dành hàng giờ đồng hồ để khắc phục và cuối cùng khám phá lại câu trả lời này. Cảm ơn!
Hannes Sachsenhofer

2
Bạn phải thay đổi dir đến vị trí đó để nó hoạt động bình thường. Xem github.com/it3xl/MSBuild-DevEnv-Build-Server-Workarounds/issues/...github.com/it3xl/MSBuild-DevEnv-Build-Server-Workarounds/blob/...
GilesDMiddleton

Hoàn hảo cho tôi khi sử dụng Visual Studio 2019 Community Edition trên máy xây dựng của tôi.
Max Power

48

Tôi đọc ở đâu đó trực tuyến về điều này và tôi đã sửa nó như thế này (nó được đề xuất bởi ai đó) :

  • mở tệp dự án thiết lập của bạn (.vdproj) trong notepad (hoặc bất kỳ trình soạn thảo văn bản nào khác)
  • xóa những dòng này ở đầu tệp .vdproj:

    "SccProjectName" = "8:"
    "SccLocalPath" = "8:"
    "SccAuxPath" = "8:"
    "SccProvider" = "8:"
  • xây dựng lại - lỗi đã biến mất

Lỗi đó không ngăn tôi triển khai, xây dựng, gỡ lỗi (hoặc xác nhận) dự án của mình mà nó chỉ làm tôi khó chịu. Và nó xuất hiện ngay cả khi tôi đặt tất cả các dự án được xây dựng trong một cấu hình hiện tại và dự án thiết lập thì không.


3
Vấn đề của vấn đề là nó là một điều kiện chủng tộc. Thực hiện điều chỉnh (ngẫu nhiên) và xây dựng lại sẽ làm cho nó có vẻ như đã được sửa. Chỉ cần xây dựng lạing cũng sẽ làm cho vấn đề trở nên tồi tệ. Tôi muốn biết liệu nó có còn 'cố định' sau 100 bản dựng hay không.
oɔɯǝɹ

6
Có thể là một điều kiện chủng tộc, nhưng trên công trình sửa chữa và cho phép tôi để nhận được về với cuộc sống của tôi (cho đến khi vấn đề tiếp theo đó có tôi cọ rửa stack overflow :))
gls123

39

Giải pháp vĩnh viễn (+ cho máy xây dựng)

Visual Studio 2017

Đối với VS 2017, hãy gọi các tập lệnh CMD sau trong tài khoản Windows mục tiêu của bạn:

Cộng đồng phiên bản
Professional edition
Enterprise edition

TL; DR. Ghi chú cho người nghèo DisableOutOfProcBuild.exe, giải pháp được cung cấp của Microsoft mà tôi sử dụng cho VS 2017.

  1. DisableOutOfProcBuild.exekhông cho rằng bạn sẽ gọi nó ra khỏi thư mục cài đặt của nó . Vì vậy, bạn không thể sao chép tệp .exe này. (Nhân tiện, nếu bạn muốn xây dựng .vdproj, bạn phải cài đặt VS.)
  2. DisableOutOfProcBuild.exe sẽ chỉ hoạt động nếu thư mục CMD hiện tại được đặt thành vị trí cài đặt của DisableOutOfProcBuild.exe.

Ví dụ, đối với phiên bản VS Professional, chúng ta phải gọi

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

Visual Studio 2015 trở về trước

bằng CMD cho người dùng Windows hiện tại

Đối với nhiều người, việc tạo / sửa trong HKEY_CURRENT_USER\..không phải lúc nào cũng hoạt động hoặc hoạt động vĩnh viễn.
Đang cố gắng giải quyết vấn đề này, tôi thấy rằng trên thực tế, tôi phải tạo / thay đổi một số khóa kỳ lạ trong HKEY_USERS HKEY_USERS\S-1-5-xx-xxxxxxxxxx-xxxxxxxxx-xxxxxxxxxxx-xxxxx\...\MSBuild

Nhưng tôi cũng nhận thấy rằng nếu tôi sử dụng bảng điều khiển CMD HKCUvới bản sửa lỗi được đề xuất,
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
điều này sẽ ghi chính xác giá trị vào khóa kỳ lạ đó HKEY_USERS \ S-1-5-xx-xxxxxxxxxx-xx ... , không phải vào HKEY_CURRENT_USER .

Vì vậy, điều này hoạt động từ lần đầu tiên và mãi mãi. Chỉ cần sử dụng bảng điều khiển 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)

Giải quyết cho Máy chủ Xây dựng

Mặt khác, mã này luôn hoạt động cho tài khoản người dùng hiện tại khởi chạy nó (vì HKEY_CURRENT_USER). Nhưng các máy chủ xây dựng thường sử dụng tài khoản chuyên dụng hoặc Hệ thống cục bộ, v.v.

Tôi đã sửa nó trên các máy xây dựng của mình bằng cách thêm tệp lô đơn giản sau vào các tác vụ xây dựng của mình (Jenkins, TeamCity, CruiseControl)

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


1
sau khi vá các evrey reg vài tháng cho 2 năm nay, và các tập tin CMD không làm việc mịn một số giải pháp
CMS

1
Đã có vấn đề tương tự xuất hiện khi xây dựng MSI từ dự án thiết lập trên máy chủ xây dựng. Quá trình xây dựng luôn hoạt động trước đây và không thay đổi, nhưng bắt đầu thất bại liên tục. Đã thêm điều này vào tập lệnh xây dựng ngay trước lệnh gọi tới devenv.exe và nó đã hoạt động với tôi trong VS 2013. Cảm ơn rất nhiều.
Jim

Trong VS 15.8.x, tôi gặp lỗi này ngay cả sau khi chạy EXE, tuy nhiên bằng cách đóng VS, sau đó chạy EXE và sau đó khởi động lại VS, lỗi đã được giải quyết. Vì vậy, một cái gì đó trong VS đang đặt lại cài đặt đăng ký và giải pháp là đóng VS, chạy lại DisableOutOfProcBuild.exe và sau đó khởi động VS.
user2728841

1
Bản sửa lỗi này hoạt động cho các bản dựng vNext TFS VS2015. Chúng tôi sử dụng tài khoản NT Authority \ Network Service cục bộ cho các bản dựng tự động, vì vậy việc thêm khóa reg từ RDPing vào máy ảo bản dựng theo cách thủ công không khắc phục được lỗi bản dựng tự động. Tôi đã thêm bước tạo khóa reg ngay trước bước gọi Devenv.com cho tệp VDPROJ. Sau khi vật lộn rất lâu để tìm cách sửa lỗi này, tôi muốn cảm ơn it3xl rất nhiều vì đã đăng nó !!!
ckkkitty

6

Như đã chỉ ra trong các nhận xét ở đây , đối với VS2017, bạn sẽ cần tạo DWORD HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 15.0_ [IDKey] _Config \ MSBuild \ EnableOutOfProcBuild Thay thế [IDKey] bằng hậu tố ID của khóa con 15.0 hiện có của VisualStudio .

Ví dụ: nếu trong VisualStudio bạn thấy khóa "15.0_abcd1234" thì nó sẽ là "15.0_abcd1234_Config".

ví dụ về regedit



4

Tôi đã phải đối mặt với vấn đề này sau khi tôi chuyển dự án của mình sang một PC khác (VS 2010, nhiều dự án trong một giải pháp).

Nó đã được xây dựng dự án của tôi trong máy tính nguồn nhưng sau khi tôi sao chép vào mục tiêu, tôi không thể tạo Dự án thiết lập của mình và gặp lỗi này.

Tôi đã mở /Debugthư mục theo đường dẫn gốc của Setup Project của mình, có MyProject.msisetup.execác tệp, tôi đã xóa chúng và xây dựng lại dự án của mình, nó hoạt động. Hy vọng nó cũng hiệu quả với một số bạn.


thêm một 1, chỉ cần xóa các .msi và các tập tin setup.exe và xây dựng lại dự án thiết lập đã được thông báo lỗi đi đi
George

và -1, nó dường như chỉ giải quyết vấn đề này tạm thời, sau khi mở lại giải pháp vấn đề xuất hiện trở lại
George

@ChrisSchiffhauer để giải quyết nó, chỉ bạn xóa tệp msi và exe ?
Kiquenet

@Kubilay đã nói rất tốt, cảm ơn rất nhiều vì giải pháp của bạn !! Sự cố này có thể gây ra khi chuyển các dự án từ khuôn khổ cũ sang mới hơn, vì chúng tôi đặt phiên bản khuôn khổ mới hơn trong thuộc tính dự án. Có thể, dự án thiết lập có thể chứa các tệp .msi và .exe ở vị trí đích của nó. Với phiên bản khung mới, nó có thể tạo ra lỗi khi ghi đè các tệp đang thoát. Vì vậy, nhấp chuột phải vào dự án thiết lập -> truy cập vào 'Tên tệp đầu ra' (Trong Thuộc tính cấu hình \ Xây dựng) -> nhấp vào nút '...' (duyệt) -> lấy vị trí đích và xóa các tệp .msi cũng như .exe . Bây giờ hãy xây dựng dự án và nó sẽ hoạt động.
Navin Pandit,

1

Kiểm tra các phụ thuộc của dự án có thể hữu ích.

Trong VS 2010, nhấp chuột phải vào trình khám phá giải pháp của bạn, sau đó nhấp vào Phụ thuộc được phát hiện và Làm mới phụ thuộc, đôi khi nó sẽ giải quyết được sự cố.


1

Tôi đang sử dụng VS 2017 nhưng không có giải pháp nào ở trên hoạt động. Vì vậy, đã nâng cấp phiên bản mới nhất của VS 2017 và áp dụng giải pháp @AussieAsh và hoạt động của nó vẫn tốt ...

Tôi hy vọng giải pháp này có thể ai đó sẽ làm việc.


0

với tôi đó là do tệp .suo sai. (do skydrive gây ra) xóa tệp này đã giải quyết được sự cố.


DisableOutOfProcBuild.exe hoạt động trong một thời gian cho đến khi nó không hoạt động. Xóa tệp .suo đã khắc phục sự cố.
Sego

0

Visual Studio 2017 lưu trữ thông tin đã lưu trữ trước đó trong sổ đăng ký công cộng trong sổ đăng ký riêng tư mới: C: \ Users \\ AppData \ Local \ Microsoft \ VisualStudio \ 15.0_6de65198 \ privateregistry.bin

Đây là nơi bạn cần thêm EnableOutOfProcBuild theo hướng dẫn cho VS2013 / VS2015.

Để cập nhật sổ đăng ký riêng, bạn có thể sử dụng Regedit.

Nhấp để chọn nút HKEY_USERS.

Chọn Tệp> Tải Hive và điều hướng đến tệp privateregistry.bin. Khi bạn chọn nó, Regedit sẽ hỏi tên - bạn gọi nó là gì không quan trọng vì chúng tôi sẽ sớm hoàn thành.

Bây giờ cấu trúc đăng ký sẽ xuất hiện và bạn có thể điều hướng xuống Microsoft \ VisualStudio \ 15.0_Config \ MSBuild

Tạo DWORD mới EnableOutOfProcBuild với giá trị 0.

Sau khi hoàn tất, hãy chọn gốc của tổ ong (bất kỳ cái gì bạn đặt tên cho nó trước đó) và sử dụng Tệp> Tải xuống Hive để tách khỏi nó.

Bây giờ nó sẽ hoạt động: o)


Không cần phải gây rối với tệp đăng ký riêng tư, bạn chỉ có thể tạo khóa 15.0_ <x> _Config trong sổ đăng ký thông thường (xem ở trên)
Night94,

0

Visual Studio 2013 của tôi bằng cách nào đó đã trở thành Thử nghiệm nên nó bắt đầu sử dụng khóa đăng ký khác cho EnableOutOfProcBuild

nhập mô tả hình ảnh ở đây

Để chắc chắn, tôi vừa thêm một dòng khác trong tệp lô của mình để đặt giá trị đăng ký và nó bắt đầu hoạt động:

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

Chỉ cần chạy exe này

(Phiên bản cộng đồng Visual Studio 2017)

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

(Phiên bản Visual Studio 2017 Enterprise)

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


0

Được rồi, tôi đã xem xét vấn đề này cho đến khi mặt xanh, mặt đỏ, rụng tóc, mất trí, và thử từng bước tôi có thể tìm được. :-D

Giải pháp của tôi cho Visual Studio 2017 / TeamCity là sự kết hợp của hai giải pháp từ @ it3xl và một số hỗ trợ từ @ Night94 .

Vấn đề dường như là khóa đăng ký cho người dùng TeamCity bị thiếu.

  • Do đó, việc chạy DisableOutOfProcBuild.exe như được đề cập bởi @AussieAsh không hoạt động vì nó chỉ thêm khóa đăng ký cho người dùng của tôi.
  • sử dụng tập lệnh được đề cập bởi @ it3xl cũng không thành công khi chạy từ TeamCity

Do đó, giải pháp là thêm phần sau làm bước xây dựng dòng lệnh từ TeamCity trước MSBuild:

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

Khi bước này chạy, nó có thể được xóa nếu cần.

Tóm tắt giải pháp

Hoặc:

  • chạy DisableOutOfProcBuild.exe với tư cách là người dùng TeamCity hoặc
  • điều hướng đến khóa đăng ký HKCU\SOFTWARE\Microsoft\VisualStudiovà kiểm tra phiên bản được liệt kê, sau đó sửa đổi ở trên REG ADDđể phù hợp với các phiên bản (nhớ thêm _Config) như một bước trong bản dựng TeamCity.

Một lần nữa, những điều trên chỉ nên được thực hiện một lần. Bạn có thể vô hiệu hóa để bước vào TeamCity để tham khảo nếu bạn gặp sự cố một lần nữa.


0

Bước 1 Tôi đã "tạo một khóa DWORD với tên" EnableOutOfProcBuild "và đặt giá trị của nó thành" 0 "trên đường dẫn bên dưới

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

Lưu ý: Đảm bảo rằng bạn đã đăng nhập với cùng một người dùng mà bạn đang cố gắng xây dựng dự án

Nó đang hoạt động tốt cho tôi.


-1

Gặp sự cố này ngay hôm nay, hãy thử khởi động lại Visual Studio, nếu điều đó không hiệu quả, hãy tạo một dự án mới, hãy lưu nó và sau đó sao chép các tệp từ dự án gặp sự cố qua. cả hai phương pháp đều làm việc cho tôi.


-3

Hãy làm sạch giải pháp trước, xây dựng giải pháp và hơn là cố gắng xây dựng trình cài đặt. Nó sẽ loại bỏ lỗi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.