2010-05-03 21 views
14

Tôi đang cố gắng ký một bản lắp ráp trong Visual Studio 2010 bằng tệp PFX của chúng tôi. Sau khi tôi nhập mật khẩu cho khóa riêng, tôi nhận được:Lỗi khi sử dụng Visual Studio 2010 để ký kết hợp đồng: "Đã thực hiện một nỗ lực để tham chiếu mã thông báo không tồn tại"

Một cố gắng đã được thực hiện để tham khảo một mã thông báo rằng không tồn tại

Làm thế nào tôi có thể khắc phục vấn đề này?

Trả lời

13

Tôi gặp vấn đề tương tự. Chỉ cần sử dụng signtool từ dấu nhắc lệnh Visual Studio thay thế. Đôi khi, signtool sẽ yêu cầu mật khẩu của bạn không hợp lệ, nhưng thường sau một vài lần thử, nó bắt đầu hoạt động cho tôi.

signtool.exe sign /f YOURCERT.pfx /p YOURPASSWORD YOURTARGET.exe

+3

Perfect làm việc như một bước bài xây dựng, chỉ cần phải thay đổi để dấu signtool.exe/f YOURCERT.pfx/p yourpassword YOURTARGET.exe – Fiacc

+4

tôi đã có vấn đề với điên điều này quá, cuối cùng đã phải nhập khẩu PFX vào cửa hàng máy tính địa phương của tôi và sử dụng thi trong bài đăng sau: "% ProgramFiles% \ Microsoft SDK \ Windows \ v7.0A \ Bin \ signtool.exe" ký/a/n "CN của bạn"/sm/t http: //timestamp.comodoca. com/authenticode "$ (TargetPath)" –

+4

Làm thế nào để bạn thực hiện việc này với ClickOnce và biểu hiện ký? Bạn không phải ký tên trong quá trình xây dựng để làm việc đó? – BrainSlugs83

6

Nếu bạn muốn Visual Studio tự động đăng nhập các tập tin và làm việc với ClickOnce, đây là những gì tôi phải làm:

  • Nhận một bản sao của OpenSSL. Đó là available for Windows. Hoặc sử dụng một hộp Linux vì tất cả chúng đều có nó.

  • Run sau đây để xuất khẩu sang một tập tin quan trọng:

    openssl pkcs12 -in certfile.pfx -out backupcertfile.key 
    
    openssl pkcs12 -export -out certfiletosignwith.pfx -keysig -in backupcertfile.key 
    

Sau đó, trong các thuộc tính dự án bạn có thể sử dụng các tập tin PFX.

+1

Giống hệt với [câu trả lời cho * Không thể nhập tệp khóa 'blah.pfx' - lỗi 'Tệp tin keyfile có thể được bảo vệ bằng mật khẩu '*] (http://stackoverflow.com/questions/2815366/cannot-import-the-keyfile-blah-pfx-error-the-keyfile-may-be-password-protec/8130302#8130302) . –

+0

Tất cả những gì đã làm là thay đổi thông báo lỗi. Bây giờ nó nói tổng MD5 là sai. – BrainSlugs83

11

Chạy Visual Studio làm Quản trị viên đã khắc phục vấn đề này cho tôi.

0

Đây là những gì phù hợp với tôi.

Trước tiên, hãy thử xây dựng dự án của bạn với tùy chọn ký tên khóa được bật cho dự án của bạn. Việc xây dựng sẽ thất bại, goto cửa sổ 'Đầu ra' và bạn sẽ thấy lỗi như:

Lỗi 1 Không thể nhập tệp khóa sau: MyKey.pfx. Tệp khóa có thể được bảo vệ bằng mật khẩu. Để khắc phục điều này, thử import chứng chỉ lại hoặc tự cài đặt chứng chỉ cho Mạnh Tên CSP với tên kho chứa khóa sau: VS_KEY_7B9423FE45F4DBEB Project.SomeName

Lưu tên chính Store (ví dụ VS_KEY_7B9423FE45F4DBEB), bạn sẽ cần điều này sau.

Bây giờ hãy làm theo các bước sau:

  1. nhập chìa khóa chứng chỉ số (PFX) trong Certificate Store Windows. Nhấn đúp vào khóa PFX trong Windows Explorer và cài đặt/nhập nó vào kho khóa của bạn (tôi thực sự đã nhập nó vào kho lưu trữ chứng chỉ gốc tin cậy bằng cách chọn thủ công chọn cửa hàng).
  2. Bắt đầu Visual Studio 2010 với tư cách là người dùng thông thường (Tôi không gặp phải vấn đề ký tên khóa này với tư cách Quản trị viên, nhưng tôi muốn gỡ lỗi ứng dụng của mình với tư cách người dùng) (giữ nó mở trong toàn bộ quá trình này)
  3. Từ khi bắt đầu Trình đơn mở lối tắt Visual Studio Command Prompt (2010) (x64 nếu bạn sử dụng máy x64) AS AN MANAGER (nhấp chuột phải vào lối tắt Command Prompt của Visual Studio 2010 và chọn chạy với tư cách Quản trị viên). Điều này sẽ mở một dấu nhắc lệnh quản trị với thiết lập môi trường Visual Studio. (Không phải là một dấu nhắc lệnh thường xuyên)
  4. Trong cửa sổ lệnh, nhập sn -d VS_KEY_xxxx với tên chính Store từ thông báo lỗi bạn đã lưu lúc đầu
  5. Sau đó nhập sn -i xxx.pfx VS_KEY_xxxx, nhập mật khẩu khi được nhắc, xxx.pfx nếu giấy chứng nhận kỹ thuật số của bạn
  6. quay trở lại Visual Studio và xây dựng lại dự án của bạn