私はこの目標を持っています
<Target Name = "AddLocalCertificate">
<MSBuild.ExtensionPack.Security.Certificate TaskAction="Add" FileName="$(CertificateLocation)" CertPassword="$(CertificatePassword)">
<Output TaskParameter="Thumbprint" PropertyName="CertificateHash"/>
</MSBuild.ExtensionPack.Security.Certificate>
</Target>
そして別のターゲットでは、このバインディングステートメント
<MSBuild.ExtensionPack.Web.Iis7Binding
CertificateHash="$(CertificateHash)"
TaskAction="Add" MachineName="$(MachineName)" Name="$(SiteName)" BindingInformation="*:$(HttpsPort):$(SiteName)" BindingProtocol="https"/>
ただし、ターゲットを実行するとエラーが発生します
証明書を使用してバインディングを作成しています: ストア 'MY' の拇印 'DBE4964B4C4D0F185E8B1D421D736390AE586EBF' C:\Projects\RC19_Release2\ExternalBinaries\MSBuildGlobalFiles\ManageWebsite.targets(154,3): エラー: COMException: 指定されたログオン セッションが存在しません。すでに終了している可能性があります。(HRESULT からの例外: 0x80070520)\r C:\Projects\RC19_Release2\ExternalBinaries\MSBuildGlobalFiles\ManageWebsite.targets(154,3): エラー:
IIS を見ると、サイトが作成され、バインディングが存在しますが、証明書が見つからないようです。IIS の「サーバー証明書」を見ると、証明書が表示されません。
MMC -> 証明書スナップインを実行して [現在のユーザー] に移動すると、そこに自分の証明書が表示されます。
IIS/msbuild 内からその証明書にアクセスする方法、または IIS が満足できるように msbuild で証明書を正しい場所に作成する方法を教えてください。
msbuild 拡張機能のヘルプ ページはhttp://www.msbuildextensionpack.com/help/4.0.5.0/html/45763eac-8f14-417d-9b27-425161982ffe.htmですが、あまり役に立ちませんでした。
ありがとう