Panduan untuk memastikan acara build dalam proyek "mrsigner" dan "sp" menemukan file yang diperlukan
- Mengkompilasi solusi sampel sgx-ra di Visual Studio*
- Galat yang diterima dari proyek:mrsigner:
Perintah ""sgx-ra-sample\vs\x64\Debug\mrsigner.exe" x64\Debug\enclave_sigstruct_raw > x64\Debug\enclave_mrsigner.txt
: galat MSB3073: :VCEnd" keluar dengan kode 1.Sp:
Get-Content : Tidak dapat menemukan path 'sgx-ra-sample\vs\service-provider\policy.in' karena tidak ada.
Dalam project mrsigner, buka Post-Build Event dan ubah $(IntDir) menjadi $(OutDir).
- Pilih project mrsigner -> Properties -> Build Events -> Post-Build Event.
- Edit Command Line: "$(TargetPath)" $(OutDir)enclave_sigstruct_raw > $(OutDir)enclave_mrsigner.txt.
Dalam project sp, buka Acara Pra-Bangun dan tambahkan .. \ untuk policy.in.
- Pilih project sp -> Properties -> Build Events -> Pre-Build Event.
- Edit Command Line: powershell -command "$mrs=Get-Content -Path .. \mrsigner\$(IntDir)enclave_mrsigner.txt; ( ( Get-Content -Path .. /policy.in -Raw ) -replace '@MRSIGNER@',$mrs ) | Set-Content $(IntDir)policy.cmd".
Perintah PowerShell* bawaan dalam Pre-Build Event of project sp tidak dapat menemukan berkas policy.in.
Lokasi bawaan policy.in berada di bawah sgx-ra-sample/vs/policy.in.
Selama acara pra-rakit, perintah PowerShell dijalankan dari direktori sgx-ra-sample/vs/service-provider. Oleh karena itu, tempat .. / di depan policy.in di baris perintah PowerShell sehingga dapat menemukan policy.in satu tingkat ke atas.
Jadi, mengetahui bahwa perintah PowerShell berjalan di sgx-ra-sample/vs/service-provider, beri tahu perintah PowerShell jalur relatif yang benar ke policy.in jika tidak ada di lokasi bawaan.