2013-05-04 61 views
0

我有Wix刻录自定义安装程序使用ManagedBootstrapperApplicationHost。 我想要做的是,有一个启动画面,版本号现在我不想每次更新安装时更改闪屏图像。我希望它有一个版本没有我已经在捆绑设置。Wix 3.7刻录 - 如何使用动态信息自定义启动画面

我该如何做到这一点,是否必须创建自己的窗口与图像和管理splashscreen?或者还有其他方法吗?

回答

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> 

很明显,您应该从项目中的任何源代码中提取出版本。

+0

谢谢汤姆!这说得通.. – Gaurav 2013-05-08 14:11:53