Chuyển đến nội dung chính
Hỗ trợ cơ sở tri thức

Đã nhận được lỗi "MSB3073" từ Sự kiện Xây dựng trong mrsigner và sp Projects khi biên dịch sgx-ra-sample trong Visual Studio*

Loại nội dung: Thông báo lỗi   |   ID bài viết: 000087410   |   Lần duyệt cuối: 22/09/2021

Môi Trường

Hệ điều hành

Windows_10

Mô tả

  • Đã soạn giải pháp sgx-ra-sample trong Visual Studio*
  • Đã nhận được lỗi từ các dự án:
    mrsigner:
    Lệnh ""sgx-ra-sample\vs\x64\Debug\mrsigner.exe" x64\Debug\enclave_sigstruct_raw > x64\Debug\enclave_mrsigner.txt
    : lỗi MSB3073: :VCEnd" thoát với mã 1.

    Sp:
    Nội dung nhận: Không thể tìm đường dẫn 'sgx-ra-sample\vs\service-provider\policy.in' vì nó không tồn tại.

Độ phân giải

Trong trình chỉ huy dự án, đi đến Sự kiện hậu xây dựng và thay đổi $(IntDir) thành $(OutDir).

  1. Chọn trình chỉ huy dự án -> thuộc tính -> xây dựng sự kiện -> sau xây dựng.
  2. Chỉnh sửa Dòng lệnh: "$(TargetPath)" $(OutDir)enclave_sigstruct_raw > $(OutDir)enclave_mrsigner.txt.

Trong project sp, vào Pre-Build Event và thêm .. \ đến policy.in.

  1. Chọn project sp -> Properties -> Build Events -> Pre-Build Event.
  2. Chỉnh sửa Dòng lệnh: powershell -command "$mrs=Get-Content -Path .. \mrsigner\$(IntDir)enclave_mrsigner.txt; ( Get-Content -Path .. /policy.in -Raw ) -thay thế '@MRSIGNER@', $mrs ) | Set-Content $(IntDir)policy.cmd".

Thông tin bổ sung

Lệnh PowerShell* mặc định trong Pre-Build Event của project sp không thể tìm thấy tệp tin policy.in của bạn.

Vị trí mặc định của policy.in nằm trong sgx-ra-sample/vs/policy.in.

Trong sự kiện tiền xây dựng, lệnh PowerShell được thực hiện từ thư mục sgx-ra-sample/vs/service-provider. Theo đó, nơi .. / trước policy.in dòng lệnh PowerShell để nó có thể tìm thấy policy.in một cấp độ.

Vì vậy, khi biết rằng lệnh PowerShell chạy trong sgx-ra-sample/vs/service-provider, hãy cho lệnh PowerShell biết đường dẫn tương đối chính xác đến policy.in nếu nó không ở vị trí mặc định.

Các sản phẩm liên quan

Bài viết này áp dụng cho các sản phẩm 1.

Các sản phẩm đã ngưng sản xuất

Tuyên bố miễn trừ trách nhiệm

Nội dung gốc bằng tiếng Anh trên trang này vừa do con người vừa do máy dịch. Nội dung này chỉ để cung cấp thông tin chung và giúp quý vị thuận tiện. Quý vị không nên tin đây là thông tin hoàn chỉnh hoặc chính xác. Nếu có bất kỳ mâu thuẫn nào giữa bản tiếng Anh và bản dịch của trang này, thì bản tiếng Anh sẽ chi phối và kiểm soát. Xem phiên bản tiếng Anh của trang này.