Czy ktoś może udostępnić mi fragment lub rozwiązanie WiX dla wspomnianego scenariusza. Potrzebuję dołączyć plik pfx do msi WiX, a użytkownik pobierze mój msi do swojego komputera za pomocą przeglądarki internetowej i instalacji Click, a ja potrzebuję również certyfikatu do zainstalowania na jego komputerze.Zainstalowanie certyfikatu pfx w magazynie użytkowników w systemie Windows przy użyciu WiX
Odpowiedz
Potrzebujesz Certificate element. Jest to część rozszerzenia IIS dla wix, ale może być również używane w instalacjach niezwiązanych z IIS.
Trzeba
zadeklarować prefiks obszaru nazw IIS dla przykład jak to w elemencie Wix root:
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' xmlns:iis='http://schemas.microsoft.com/wix/IIsExtension'>
osadzić plik PFX postaci binarnej strumieniu w pakiecie instalacyjnym. Dodać element Binary pod elementem produktu tak:
<Binary Id="MyCertificateBinaryStream" SourceFile="c:/path/to/mycertificate.pfx" />
stwierdzenie składową z elementem
<iis:Certificate>
na przykład takiego. Spójrz na numer documentation, musisz podać więcej atrybutów: . Pamiętaj, że nie potrzebujeszCertficatePath
, jeśli używasz atrybutuBinaryKey
.<Component Id="MyCertificateComponent" Guid="MY-GUID-HERE"> <iis:Certificate Id="MyCertificate" BinaryKey="MyCertificateBinaryStream" ... some more attributes ... /> </Component>
Aktywuj rozszerzenie IIS dodając opcja opcja
-ext WixIISExtension
podczas wywoływania narzędzia wiersza poleceń Wix. Jeśli używasz visual studio, jest to tylko kwestia dodania odniesienia w twoim projekcie wix doWixIISExtension
.
Aby rozwinąć na odpowiedź trochę następujący zestaw atrybutów pracował dla mnie:
<iis:Certificate
Id="My.Certificate"
StoreName="root"
Overwrite="yes"
Name="My Friendly Certificate Name"
Request="no"
BinaryKey="MyCertificate.Binary"
StoreLocation="localMachine" />
Gdzie element <Product>
zawierał <Binary>
dziecko następująco:
<Binary
Id="MyCertificate.Binary"
SourceFile="$(var.ProjectDir)MyCertificate.pfx" />
(Zawarłem plik PFX w ramach mojego projektu WiX).
Zajrzę do tej odpowiedzi i spróbuję. Dziękuję za odpowiedź jeszcze raz. Naprawdę doceniam twoje wyjaśnienie. Wesołych świąt dla ciebie! – abmv