2012-08-23 63 views
7

VS 2010, giành chiến thắng server 2003, Net giải pháp 3.5, được migurated từ Net 1.1sgen: lỗi: Không thể tải tập tin hoặc lắp ráp (ngoại lệ từ HRESULT: 0x8013141A)

Tất cả các dự án trong dung dịch là trễ ký . Các soluton có thể được xây dựng thành công cho Debug, nhưng luôn luôn thất bại cho Release với lỗi sau. SGEN: lỗi: Không thể tải tệp hoặc lắp ráp 'AssemblingX, Phiên bản = 1.0.5000.0, Văn hóa = trung lập, PublicKeyToken = xxxxxxxx' hoặc một trong các phụ thuộc của nó. Xác thực tên mạnh không thành công. (Ngoại lệ từ HRESULT: 0x8013141A)

AssemblingX là dự án tôi muốn xây dựng. Tất cả các DLL tham chiếu của dự án này được lưu tại thư mục cục bộ và đã được ký. Nếu tôi thay đổi thuộc tính của dự án AssemblingX để ký tên, thì giải pháp có thể được xây dựng để phát hành thành công.

Tôi tạo ra một sgen.exe.config để cho phép "loadFromRemoteSources" bằng cách làm theo các hướng dẫn trên http://social.msdn.microsoft.com/Forums/nl-NL/msbuild/thread/695581ae-77e7-4c3a-bb3f-6472b8c47f65

Nhưng không có gì thay đổi. Bất kỳ ý tưởng?

Cảm ơn

Trả lời

17

Sự cố này liên quan đến Xác thực tên mạnh. Mở AssemblyX trong Ildasm.exe (C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin). Lưu ý PublicKeyToken, cho phép nói pkt123 để biết ví dụ. Bây giờ mở dấu nhắc lệnh VS trong chế độ quản trị viên và chạy lệnh sn.exe. Chẳng hạn như:

sn -Vr *,pkt123 

Xây dựng lại giải pháp của bạn và mọi thứ sẽ ổn.

Nhưng nếu không và bạn cũng nhận được lỗi tương tự, thì bạn cần chạy phiên bản khác của sn.exe. Để xác định vị trí đó, hãy vào dấu nhắc lệnh Visual Studio.

c:\Program Files(x86)>dir /s sn.exe 

Có thể mất 5-10 giây và nên cung cấp danh sách các tệp sn.exe. Đi đến đường dẫn và thực hiện sn.exe, bắt buộc hoặc thuộc về bạn, như được hiển thị ở trên. Nếu không chắc chắn cái nào để thực thi, hãy thực hiện tất cả sn.exe. Điều đó nên và phải giải quyết vấn đề của bạn. Nếu không, hãy cho tôi biết và để tôi chuyển tiếp RnD một lần nữa.

+0

Giải pháp tuyệt vời, Cảm ơn :) – Mark

+0

Cảm ơn Mark .... :) – Sandy

+0

Lifesaver !! Cảm ơn – mo13

3

Vì tôi không thể nhận xét về câu trả lời duy nhất cho điều này, tôi muốn đảm bảo rằng những người dùng khác đã đưa ra câu trả lời này như tôi đã không phạm phải những sai lầm tương tự khác có thể có. Theo tài liệu MSDN cho tiện ích đặt tên mạnh, sử dụng chuyển đổi Vr (chữ ký bỏ qua) có thể gây ra các hội đồng độc hại để tải và chỉ nên được sử dụng trong DEVELOPMENT không triển khai.

http://msdn.microsoft.com/en-us/library/k5b5tt23(v=vs.80).aspx

0

nếu vẫn không được giải quyết, bạn phải xóa hoặc thiết lập AllowStrongNameBypass (DWORD) để "1" trong

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 

Ngày 64-bit máy tính then chốt,

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework 
1

Trong trường hợp của tôi, lý do là thư viện gốc được xây dựng vào thư mục khác, sau đó phần còn lại của ứng dụng.

0

Mở cmd.

Cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin" 

Run:

sn –Vr **AssemblingX** name (without dll extension), **PublicKeyToken**

(mã)

Rebuild giải pháp. Và cần được giải quyết.

Các vấn đề liên quan