0

ManagedBootstrapperApplicationHost を使用する Wix Burn カスタム インストーラーがあります。私がやりたいのは、バージョン番号の付いたスプラッシュ画面を用意することです。インストールを更新するたびにスプラッシュ画面の画像を変更したくありません。バンドルに設定したものをバージョン No にしたいと思います。

どうすれば同じことを達成できますか?画像を使用して独自のウィンドウを作成し、スプラッシュスクリーンを管理する必要がありますか? または他の方法はありますか?

4

1 に答える 1

0

インストールを更新するたびにスプラッシュ画面の画像を変更したくありません。

プログラムで行う必要があることに同意します。私にとっては、エンド ユーザーがソフトウェア構成を管理したり、問題を報告したりするときに参照できる単一のバージョン ラベルを持つことが重要です。そして、DRY の原則に従うと、ビルド中に描画される場所が 1 つだけになることを意味します。

ただし、スプラッシュ スクリーンを含むさまざまな開発および展開ツールとリソースにはさまざまな形式が必要であるため、バージョンが必要な場所を作成または更新するためのビルド手順に投資する価値があると思います。スプラッシュ スクリーンの場合、Imagemagickは画像にテキストを描画できます。MsBuildを使用して(たとえば、bootstrapper .wixprojファイルを介して)、バンドルからバージョンを抽出し、バンドルがビルドされる前にスプラッシュ スクリーンに描画できます。

<Target Name="StampProjectFilesWithVersion" BeforeTargets="Compile">
  <XmlPeek Namespaces="&lt;Namespace Prefix='wi' Uri='http://schemas.microsoft.com/wix/2006/wi'/&gt;" XmlInputPath="Bundle.wxs" Query="/wi:Wix/wi:Bundle/@Version">
    <Output TaskParameter="Result" ItemName="BundleVersion" />
  </XmlPeek>
  <XmlPeek Namespaces="&lt;Namespace Prefix='wi' Uri='http://schemas.microsoft.com/wix/2006/wi'/&gt;" XmlInputPath="Bundle.wxs" Query="/wi:Wix/wi:Bundle/@Name">
    <Output TaskParameter="Result" ItemName="BundleName" />
  </XmlPeek>
  <Message Text="@(BundleName) @(BundleVersion)" />
  <Exec Command="tools\imagemagick\convert ^
       splash-template.bmp ^
       -pointsize 18 ^
       -draw &quot;text 100,300 'Version @(BundleVersion)'&quot; ^
       -pointsize 24 ^
       -draw &quot;text 100,260 '@(BundleName)'&quot; ^
       bmp3:splash.bmp" />
</Target>

明らかに、プロジェクトで意味のあるソースからバージョンを抽出する必要があります。

于 2013-05-06T15:07:10.920 に答える