首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WiX ScheduleReboot条件

WiX ScheduleReboot条件
EN

Stack Overflow用户
提问于 2010-10-30 05:42:19
回答 1查看 2.6K关注 0票数 3

我正在尝试让以下内容正常工作:

在第一次安装程序时,它会修改系统的环境变量,因此必须重新启动才能使程序完全工作。在WiX中做这件事非常简单,你只需要安排一次重启:

代码语言:javascript
复制
<InstallExecuteSequence>
    <ScheduleReboot After="InstallFinalize" />
</InstallExecuteSequence>

我遇到的问题是,我希望能够对这个程序进行小的升级(其中版本号改变,但产品GUID不变),并且这不需要重新启动。

在我尝试让有条件的重启工作的过程中,我尝试这样做:

代码语言:javascript
复制
<Product 
    ... 
    Version="1.0.1" 
    UpgradeCode="MYUPDATEGUID-C39B-4DDE-BA5B-6113463F60C2" 
    ...
    >

<Upgrade Id="MYUPDATEGUID-C39B-4DDE-BA5B-6113463F60C2">
    <UpgradeVersion OnlyDetect="yes" Property="UPGRADING"
                    Maximum="1.0.1" IncludeMaximum="yes" />
</Upgrade>

...

<InstallExecuteSequence>
    <ScheduleReboot After="InstallFinalize">NOT UPGRADING</ScheduleReboot>
</InstallExecuteSequence>

这很好,只是它不起作用。无论我做什么,它总是尝试安排重新启动。

问题似乎出在UPGRADING属性上--如果我用UPGRADING替换NOT UPGRADING,它永远不会请求重启。

任何比我更有经验的人的洞察力都会很棒。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-30 11:06:36

我想知道更多关于你最初的假设,你需要重启。WriteEnvironmentStrings将广播一个WM_SETTINGSCHANGE,正确编写的应用程序应该遵守它。除了像Win95/ 98这样的边缘情况,以及服务控制管理器设计得很差并忽略了这些消息的事实,我认为通常情况下,你不应该首先需要重新启动。

否则,如果您正在进行次要升级,请考虑使用未安装的属性。这将使其在随后的维修、维护、移除、小升级和补丁过程中无法运行。

WriteEnvironmentStrings Action

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4056112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档