WiX 在安装前检查文件是否存在

2024-01-16

我已经多次看到这个问题被问到,但似乎没有一个答案对我有用。我显然错过了一些基本的东西,但我似乎无法找出它是什么!我才使用 WiX 几天,所以我对它还很陌生。

基本上,我已经在现有产品中构建了一个插件,并且我想在允许安装插件之前检查该产品是否已安装。我认为最简单的方法是检查主要可执行文件是否位于正确的目录中。

到目前为止我的相关代码:

<Property Id="FILEEXISTS">
  <DirectorySearch Id="CheckFileDir" Path="INSTALLDIR" Depth="0">
    <FileSearch Id="CheckFile" Name="main.exe" />
  </DirectorySearch>
</Property>

<Condition Message="File does exist.">NOT FILEEXISTS</Condition>

Where INSTALLDIR is the Idmain.exe 应该所在的目录并在嵌套中定义Directory tags.


在用户可以通过 MSI 对话框设置安装文件夹之前执行搜索。所以这种方法不会按照你想要的方式工作。

如果您想检查安装文件夹中的文件,我建议通过 UI 自定义操作执行DoAction http://msdn.microsoft.com/en-us/library/aa368322%28VS.85%29.aspx控制事件。该事件可以通过文件夹选择对话框上的“下一步”按钮触发。

对此没有预定义的自定义操作,因此您需要使用自定义代码编写一个操作。它应该是接收安装句柄的 DLL 或 VBScript。您可以在这里找到一个小教程:http://www.codeproject.com/KB/install/msicustomaction.aspx http://www.codeproject.com/KB/install/msicustomaction.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WiX 在安装前检查文件是否存在 的相关文章

  • Wix 自定义对话框

    目前 我们的安装向导使用的是 Wix 经典主题 现在 我们计划改进安装程序的外观和感觉 1 我如何将自定义对话框经典主题更改为其他主题 2 在安装我们的设置时 我们计划显示一些图像 例如幻灯片放映 是否可以像 Wix 中那样显示图像 我是否
  • 在 WiX 中重新启动后继续安装

    我正在尝试使用 WixStandardBootstrapperApplication 创建引导应用程序 除了处理重启之外 它可以很好地完成我需要它做的所有事情 我需要安装一组EXE文件 只有第一个是 NET 4 5 需要重新启动 我会延迟重
  • 从 WiX 提升的安装程序运行未提升的自定义操作

    我正在尝试弄清楚如何从提升的 WiX 安装设置程序运行自定义操作 WiX 生成的 msi 文件由 DotNetInstaller 执行 在 WiX 中 我有一个 Package 部分 其中 InstallScope 设置为 perMachi
  • WIX 3.9 及更高版本的自定义操作 RegisterComPlus 发生错误

    在 Microsoft 我们长期以来一直使用 WIX 工具集版本 3 5 2519 0 来为我们名为 System Center Service Manager 又名 SCSM 的产品构建安装程序和补丁 最近我们需要更新到 WIX Tool
  • 如何使用 WiX 设置服务的恢复选项?

    我有以下 wxs 文件
  • 无法使用 WiX 安装程序创建注册表项值

    以下组件按预期执行所有操作 但无法写入最后一个注册表项值 我没有收到任何错误
  • App.Config 应该是应用程序的伴随文件还是放在自己的组件中?

    当我创建 Windows Installer 程序包 例如使用 WiX 并安装该应用程序时App exe以及App exe config配置文件应该有自己的组件还是应该是应用程序可执行文件的伴随文件
  • WiX 在构建服务器上失败

    我有一个使用 WiX 的项目 它在我的本地计算机上运行良好 但是当我发布到构建服务器时 构建会因以下内容而崩溃 来自 MSBuild 日志 Using HeatDirectory task from assembly C Program F
  • WiX 无法正确渲染图像

    我正在尝试编写一个自定义 WiX 对话框 作为其工作流程的一部分 它会根据某些条件显示错误图像 然而 WiX 似乎忽略了我的尺寸并按其感觉合适的方式显示 这是我的代码
  • 在 WiX Bundle 中包含 .NET 安装程序未检测是否已安装

    我使用的是 WiX 3 7 无法让简单的 捆绑元素正常工作 因为它不会带来 Net FX 安装程序包 也不会将其嵌入到 setup exe 中 我已经在我的程序中为此创建了自己的包Bundle wxs文件 但我仍然遇到麻烦 即使机器已经安装
  • 使用帮助库管理器和 WiX 安装帮助

    我试图通过使用 WiX 运行 Sandcastle 帮助文件生成器在构建我的 Sandcastle 项目后创建的 HelpLibraryManagerLauncher 将我自己的帮助文件添加到 Visual Studio 2010 的帮助库
  • 与 WiX 3.0 一起安装 WiX 3.5

    是否可以同时安装 WiX 3 0 和 3 5 如果我在安装 3 0 后安装 3 5 它会删除 3 0 文件 如果我尝试在 3 5 之后安装 3 0 它会告诉我已经安装了较新的版本 我正在从 VS 2008 迁移到 VS 2010 因此我的应
  • 从对话框调用 CustomAction 时出现 WiX 安装错误 2762

    我是初学者 开始学习WiX 我想在安装过程中捕获 验证和注册用户详细信息 我创建了一个对话框来捕获用户注册并在用户单击 下一步 后调用自定义操作 但在这里我收到安装程序错误 2762 虽然错误描述说 必须在 InstallInitializ
  • 在wix中添加文件夹到安装程序而不是文件?

    我的安装程序必须将文件复制到 installdir 我的应用程序有大约 2000 个文件 我不可能编写脚本将每个文件添加到安装程序中 wix中是否有任何选项可以让我一次添加所有文件或包含文件的整个文件夹 我是 wix 新手 我在任何教程中都
  • WIX 自动生成 GUID *?

    假设我生成产品 ID 为 的 WIX XML 文件 另外 对于每个组件 GUID 我都使用
  • 让 WIX 在项目中包含引用

    我对 WiX 和设置自定义安装程序完全陌生 所以我对问题的主题表示歉意 我有一个内部业务应用程序 日记 它构建并运行良好 因此我按照教程 官方文档添加 WiX 项目并引用日记的 csproj 然后构建并运行这个最基本版本的 WiX 安装程序
  • Wix - 自定义安装目录

    我使用的是 Wix 3 x 用户应该能够选择目标目录 我的Setup wxs目前是这样的 http pastebin com uH1EjbDQ http pastebin com uH1EjbDQ 询问用户自定义目标目录的最简单方法是什么
  • 将构建参数传递给 .wxs 文件以动态构建 wix 安装程序

    我是一名学生开发人员 我已经为我现在工作的公司构建了几个安装程序 所以我对WIX还是比较熟悉的 我们最近决定拥有一个构建服务器来自动构建我们的解决方案 它构建调试和发布以及混淆 和非混淆 项目 你真的不需要理解这些 您需要了解的是 我有相同
  • 维克斯。相同版本不同产品代码如何进行重大升级?

    基本上我需要改变这种行为 安装具有相同版本和升级代码的产品 但 不同的产品代码 是允许的 并被 MSI 视为两种产品 我需要将其作为重大升级进行威胁 因此 在 v 1 0 1 旧版本 不同的 ProductCode 上安装 v 1 0 1
  • 如何在自定义操作期间移动进度条

    在安装程序中运行自定义操作时 没有进度条 我们正在使用立即 C 管理代码自定义操作 运行自定义操作时是否有其他方法显示进度 预先致谢 维卢 使用 ProgressText 元素 模板 属性是放置标记以反映进度的地方 例如 请参阅标准 Ins

随机推荐

  • 组合框不会失去焦点

    我在使用 ComboBox 控件时遇到了问题 我不是 GUI 专家 但我知道这个问题与控件的焦点有关 由于某种原因 当我在组合框外部单击时 组合框不会失去焦点 举例来说 我单击组合框来列出其项目 我选择一项 这将关闭组合框 我单击第二个组合
  • 如何在 Julia 中使用锁

    我正在和朱莉娅一起工作 IDE 是 Juno 如果我是对的 async可以生成一个任务 它就像一个线程 所以我们可以这样做 async begin do something1 end async begin do something2 en
  • React原生垂直时间轴组件

    我想在 React Native 中创建一个垂直时间线 如下所示 但无法找到一个像样的库 有人可以建议一个库吗 或者如果它不是太棘手可以指导如何在没有库的情况下完成 您可以在常规 ListView 中实现此功能 在每一行中 在左侧放置一个固
  • 使用 DLLImport 导入对象

    我有一个 C 类的 dll SLABHIDDevice dll 我正在尝试在 C net 应用程序中使用此 dll 的功能 该 dll 包含多种方法 我可以通过诸如此类的语句轻松使用它们 如果我在这里弄错了一些术语 我深表歉意 因为我是使用
  • 是否可以删除子类/接口中继承的字段/方法?

    沿着这些思路 interface A a number x any interface B extends A b number interface C a number b number So the B将等于C 省略字段x但仍在延伸A
  • powershell Stop-Service 和 NET-STOP 有什么区别

    在 powershell 中 我见过多种停止服务的方法 更现代的方式 Stop Service wuauserv 还有更传统的方式 NET STOP WUAUSERV 传统方式自动化要困难得多 因为它本身并不是幂等的 https stack
  • AcceptSocket 不尊重 Thread.Abort 请求[重复]

    这个问题在这里已经有答案了 我的理解是 Thread Abort 应该在被阻止的线程上引发 ThreadAbortException 但是在处理时似乎并非如此TcpListener AcceptSocket 这是该问题的最基本说明 clas
  • 在 Android 中将 Json 转换为 Xml [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个 net web 服务和 w
  • nuget:“替换令牌‘id’没有值”

    执行中 nuget exe pack nuget nuget exe pack pathToProject myproject nuspec IncludeReferencedProjects Prop Configuration Rele
  • Datagridcolumn:通过 BindingProxy 绑定可见性和宽度显示不同的行为

    由于数据网格的列不在数据网格的可视化树中 我使用这种绑定代理方法来绑定数据网格的可见性DataGridTextColumn https www thomaslevesque com 2011 03 21 wpf how to bind to
  • 错误:对象已被删除或失效。 (领域)

    有时 很少但会发生 我收到错误Object has been deleted or invalidated 当尝试使用属性或在 AFnetworking 块内修改我的模型对象时 谁能帮我找出我做错了什么 错误 情况 1 Code void
  • 如何在 csv 列中使用逗号[重复]

    这个问题在这里已经有答案了 可能的重复 处理 CSV 文件中的逗号 https stackoverflow com questions 769621 dealing with commas in a csv file 我们正在将我们的一个项
  • Python setuptools 不包括 C++ 标准库头文件

    我正在尝试将 Python 包装器编译为我编写的小型 C 库 我写了以下内容setup py尝试使用的脚本setuptools编译包装器 from setuptools import setup Extension import numpy
  • 谷歌地图查询参数说明

    我正在网站中实现一项功能 通过 5 个输入框获取用户的位置 然后需要在谷歌地图中显示位置 我知道这个过程称为地理编码 但在进行一些搜索后 我再次遇到了这个链接 http www seomoz org ugc everything you n
  • 解码H264流bufferInfo.size始终为零

    我有一个 H264 流 想要使用 MediaCodec 将其解码以显示 因为我只是解码 并且希望定位尽可能多的设备 所以我支持 API 16 并使用 ExtractMpegFrames 测试作为参考 http bigflake com me
  • Firefox 12 html 元素不会缩小到 376px 以下

    我刚刚创建了一个 HTML5 页面 其背景图像位于顶部中心 p Example p 使用以下 CSS body background image url images bg png background position top cente
  • Http Range 请求属性?

    我一直在编写一些java代码片段 试图从远程主机按范围下载目标文件 我期望依靠一些多线程进程来下载一些块的远程文件 根据以下调试跟踪 一切运行良好 Task 2 gt REQUEST PROPERTIES Range bytes 59124
  • 张量流中添加方法的问题:AttributeError:模块“tensorflow.python.framework.ops”没有属性“_TensorLike”

    import keras as K from keras models import Sequential from keras layers import Dense from tensorflow import set random s
  • jQuery 选择:如何选择 1 个选项值并在另一个选择菜单中删除相同的选项值?

    我将 2 个元素并排放置 他们都使用 jQuery Chosen 插件 这是代码 div class wrapper div
  • WiX 在安装前检查文件是否存在

    我已经多次看到这个问题被问到 但似乎没有一个答案对我有用 我显然错过了一些基本的东西 但我似乎无法找出它是什么 我才使用 WiX 几天 所以我对它还很陌生 基本上 我已经在现有产品中构建了一个插件 并且我想在允许安装插件之前检查该产品是否已