Wix 3.7 Burn - 如何使用动态信息进行自定义初始屏幕

时间:2013-05-04 10:42:57

标签: wix installation burn wix3.7

我使用ManagedBootstrapperApplicationHost获得Wix Burn Custom安装程序。 我想要做的是,有一个启动画面,版本号现在我不想每次更新安装时更改启动画面图像。我希望它有一个版本没有我已经设置的捆绑。

如何实现相同目标,是否必须使用图像创建自己的窗口并管理启动画面?或者还有其他方式吗?

1 个答案:

答案 0 :(得分:0)

  

现在我不想每次更新时更改启动画面图像   安装。

我同意应该以编程方式完成。对我而言,最重要的是最终用户在管理其软件配置或报告问题时可以使用单个版本标签。并且,在DRY principle之后,这意味着在构建期间,只有一个地方应该从中抽取。

但是,由于不同的开发和部署工具和资源(包括启动画面)需要不同的格式,因此我觉得值得投资构建步骤来创建或更新需要版本的地方。对于启动画面,Imagemagick可以在图像上绘制文本。使用MsBuild(例如,通过您的引导程序.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>

显然,您应该从项目中有意义的任何来源中提取版本。