Đâ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:
- 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).
- 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)
- 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)
- 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
- 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
- quay trở lại Visual Studio và xây dựng lại dự án của bạn
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
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)" –
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