正直に言うよ、ポール。私は ClickOnce に本当に興奮したことはありません。ツールセットは、手動の公開/展開の側面を除いて、成熟しているようには見えません。MSBuild を介して実行することは決して良い経験ではなく、Mage.exeには常に問題があるようです。ほとんどの場合、私の問題はバージョン番号が正しく設定されていないことが原因でした。
とはいえ、Visual Studio の設定 UI で管理しようとしたことが最大の問題だったと思います。MSBuild の "魔法" への依存を少し減らし、必要なパラメーターを MSBuild に渡し、csproj ファイル内でもう少し制御できるようにすることは、私にとって役に立ちました。
ビルドのセットアップがどのように見えるかはわかりませんが、私たちの場合、ソリューションで MSBuild を呼び出すRakeファイルをJenkinsで実行します。これにより、特定のパラメーターを Rake ファイルから MSBuild に送信できます。
ApplicationVersion
具体的には、 、ApplicationRevision
、MinimumRequiredVersion
、および の値をプッシュしますOutDir
。csproj 自体で注意することに関してはManifestCertificateThumbprint
、 、ManifestKeyFile
、GenerateManifests
およびSignManifests
が設定されていることを確認する必要があります。また、デフォルトのビルド ターゲットを に設定しましたPublish
が、それだけで十分かどうかはわかりません。
署名している実行可能ファイルが ClickOnce パッケージにパッケージ化されていると思われるものではない可能性があることを除けば、ClickOnce が実行可能ファイルを「署名解除」する理由について話すことはできません。つまり、新しい実行可能ファイルを作成し、既に署名したものの代わりにそれをパッケージにスローしている可能性があります。ただし、確実に電話をかけるには、セットアップについてもう少し知る必要があると思います。
やり直しがきくなら、私は自分の卵を ClickOnce バスケットに入れません。Internet Explorer を実行している場合、または Chrome 用のプラグインをインストールしている場合にのみ、これは本当に素晴らしいエクスペリエンスです。もっと手間がかかりますが、私は現在、Chrome の更新ストーリーを模倣するソリューションに取り組んでいます。Internet Explorer ユーザー向けの ClickOnce パッケージがありますが、実際には、Chrome.exe と Update.exe をインストールする Windows インストーラー パッケージをダウンロードするためにのみ使用されます。Omahaの技術文書(Google Update としても知られています)に詳細が記載されています。