Chạy dự án tQueryt từ các nguồn không thành công do sự không phù hợp của Mã thông báo công cộng


8

Tôi đang cố gắng thực hiện một số cải tiến cho khung tQueryt và tôi gần như đã hoàn thành, nhưng không thể làm điều đó vì một vài thử nghiệm liên quan đến chứng chỉ mà tôi không chạm vào vẫn thất bại:

 [exec] |18|[InstallExternalAccessKeyTests].[test creates correct certificate in master]                                                       |    120|Failure|
 [exec] |19|[InstallExternalAccessKeyTests].[test tSQLt can be set to EXTERNAL ACCESS after InstallExternalAccessKey executed]                 |    333|Failure|
 [exec] |20|[InstallExternalAccessKeyTests].[test tSQLtExternalAccessKey install data is signed with same key as tSQLt.clr]                    |     10|Failure|

Lỗi không thành công là:

Expected: %publickeytoken=8c9a92de0f9c7794,%
Actual: tsqltclr, version=1.0.7216.13228, culture=neutral, publickeytoken=8d3f4bf59e4c22fd, processorarchitecture=msil

Tôi sẽ cố gắng mô tả quá trình cài đặt của tôi.

Tôi đã cài đặt các nguồn khung này bằng cách sử dụng hướng dẫn sau đây . Tuy nhiên tôi không thể bắt đầu dự án sau đó vì nó đã thất bại với các lỗi sau và toàn bộ việc giải quyết vấn đề đã được thực hiện trong bài SO đó :

[exec]
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.target (2482,5): lỗi MSB3325: Không thể nhập tệp khóa sau: tQuerytOfficialSigningKey.pfx. Các tập tin quan trọng có thể được bảo vệ bằng mật khẩu. Để khắc phục điều này, hãy thử nhập lại chứng chỉ hoặc bằng tay cài đặt chứng chỉ cho Mạnh Tên CSP với tên kho chứa khóa sau: VS_KEY_C20B79DE0583A5C1 [E: \ Source \ tSQLt \ tSQLtCLR \ tSQLtCLR \ tSQLtCLR.csproj] [exec]
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.target (2482,5): lỗi MSB3321: Nhập tệp khóa "tQuerytOfficialSigningKey.pfx" đã bị hủy. [E: \ Source \ tSQLt \ tSQLtCLR \ tSQLtCLR \ tSQLtCLR.csproj]

Để khắc phục vấn đề này, tôi đã tạo khóa mới cho mọi dự án không có mật khẩu:

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

Tôi thấy rằng nó tạo snktập tin, không phải là bản gốc pfx. Sau đó, tôi đã cố gắng chạy lại bản dựng và nó đã thất bại với các lỗi tôi đã đề cập ở trên.


Tại sao sử dụng tsqlkhung ở tất cả? Nó bao gồm rất nhiều mã trong mã cơ sở dữ liệu của bạn, rất nhiều hàm SQL CLR. Tôi đã cố gắng sử dụng nếu cho 2 dự án lớn trong năm và nó thất bại nặng nề. Sẽ tốt hơn khi tạo thử nghiệm riêng bằng cách sử dụng .net hoặc / và SQL và thực hiện chúng thông qua một số công cụ để thực hiện song song.
gotqn

Tôi không thực sự chắc chắn chính xác những gì bạn đang nói về. Chỉ có một số hàm SQL CLR ở đó. Ngoài ra, nó rất ổn định và "thất bại nặng nề" chỉ nghe có vẻ lạ. Ngay cả Redgate cũng bao gồm khung này cho các sản phẩm của họ. Bạn có thể google cho nó và bạn sẽ thấy rằng đó là khung thử nghiệm đơn vị tốt nhất cho đến nay.
Dmitrij Kultasev

Tôi biết nó là tốt nhất, nhưng nó không tốt. Tôi đã sử dụng nó rất nhiều lần và tham dự một vài cuộc biểu tình trực tuyến, yêu cầu nâng cao và công cụ, nhưng cuối cùng tôi tạo ra các thử nghiệm riêng. Đó là lời khuyên của tôi - đừng dựa vào khuôn khổ này.
gotqn

Tôi đã sử dụng nó trong nhiều năm và nó luôn hoạt động tốt với tôi, trong các dự án lớn.
Dmitrij Kultasev

Câu trả lời:


0

Như đã nêu ở đây

Lỗi sau có thể xảy ra khi xây dựng các dự án cho Microsoft Visual Studio 2008 - 2015.

Lỗi : Không thể nhập tệp khóa sau: mykey.pfx. Các tập tin quan trọng có thể được bảo vệ bằng mật khẩu.

Không thể nhập tệp khóa sau: mykey.pfx. Các tập tin quan trọng có thể được bảo vệ bằng mật khẩu. Để sửa lỗi này, hãy thử nhập lại chứng chỉ hoặc cài đặt thủ công chứng chỉ vào CSP Tên mạnh với tên thùng chứa khóa sau: VS_KEY_C1D3ACB8FBF1AGK4

GIẢI PHÁP 1:

Nhấp vào Bắt đầu> Tất cả chương trình> Microsoft Visual Studio> Công cụ Visual Studio> Dấu nhắc lệnh của Visual Studio. Gõ lệnh sau

sn -i "c:\Pathtofile\.pfx" VS_KEY_C1D3ACB8FBF1AGK4

Lưu ý : Sn.exe với tham số -i, cài đặt một cặp khóa từ vào một thùng chứa khóa có tên. Nhập lại tệp PFX vào Visual Studio.

GIẢI PHÁP 2:

  • Mở thuộc tính dự án.

  • Nhấp vào phần Ký.

  • Trong đó ghi 'Chọn tệp khóa tên mạnh:', chọn lại giá trị hiện tại từ hộp thả xuống
  • Visual Studio sẽ nhắc bạn nhập mật khẩu. Nhập nó Bạn có thể nhận được một thông báo lỗi khác: Một nỗ lực đã được thực hiện để tham chiếu một mã thông báo không tồn tại, nếu bạn có thể bỏ qua thông báo này.

  • Nhấp vào nút 'Thay đổi mật khẩu mật khẩu

  • Nhập mật khẩu gốc vào cả ba ô và bấm OK. Nếu bạn muốn thay đổi
  • mật khẩu của bạn (hoặc nếu mật khẩu cũ của bạn không đáp ứng các yêu cầu phức tạp), bạn có thể làm điều đó ngay bây giờ.
  • Lặp lại cho mỗi tệp chính trong dự án của bạn. Lưu dự án của bạn và làm lại.

GIẢI PHÁP 3:

Nhận một bản sao openssl cho các cửa sổ tại slproweb.com hoặc sử dụng hộp Linux vì tất cả chúng đều có nó. Chạy phần sau để xuất thành tệp chính

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 tệp PFX

GIẢI PHÁP 4:

Giải pháp cuối cùng cho vấn đề này là từ bỏ Visual Studio cho mục đích ký và thay vào đó sử dụng Signtool .

Cập nhật câu trả lời

Có vẻ như tài khoản Dịch vụ xây dựng TFS của bạn không có quyền yêu cầu để truy cập vào SignKey.pfx trên máy đại lý xây dựng. Hãy chắc chắn rằng bạn có tệp này trên máy đại lý xây dựng trước.

Sau đó làm theo các bước dưới đây:

  1. Đăng nhập vào đại lý xây dựng làm tài khoản dịch vụ xây dựng cục bộ của bạn (Tốt hơn có sự cho phép của Quản trị viên)
  2. Mở một dấu nhắc lệnh của studio trực quan và điều hướng đến thư mục khóa được lưu trữ trong
  3. Nhập lệnh sn –i signingKey.pfx VS_KEY_EFCA4C5B6DFD4B4F(Đảm bảo rằng bạn sử dụng tên khóa xuất hiện trong thông báo lỗi)
  4. Khi được nhắc nhập mật khẩu, hãy nhập mật khẩu cho tệp pfx

  5. Sau đó xây dựng lại

Lưu ý: Nếu bạn không chạy Visual Studio với tư cách Quản trị viên, hãy thử làm điều đó.

Thêm chi tiết bạn có thể tham khảo câu trả lời từ Brandon Manchester Không thể nhập keyfile 'blah.pfx' - lỗi 'Keyfile có thể được bảo vệ bằng mật khẩu'


Tôi không biết mật khẩu cho một khóa
Dmitrij Kultasev

Bạn có bất cứ ý tưởng?
Dmitrij Kultasev

1
Tất cả các giải pháp được cung cấp trong trường hợp của bạn yêu cầu mật khẩu. Tôi không có cái đó. Sign the ClickOnce manifestskhông được kiểm tra và TUYỆT VỜI. Tôi đang cố gắng thực hiện mọi thứ cục bộ, vì vậy không có vấn đề về quyền (Tôi đã cố chạy dòng lệnh này dưới quyền quản trị viên)
Dmitrij Kultasev

1
Có 7 điểm có nội dung "Nhập mật khẩu gốc vào cả ba hộp và nhấp vào OK. Nếu bạn muốn thay đổi mật khẩu của mình (hoặc nếu mật khẩu cũ của bạn không đáp ứng các yêu cầu phức tạp), bạn có thể thực hiện ngay bây giờ." Như tôi đã nói, tôi không có mật khẩu.
Dmitrij Kultasev

1
trong ví dụ đó tác giả biết mật khẩu và tôi không
Dmitrij Kultasev
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.