当前位置: 首页 > 知识库问答 >
问题:

安装防护是否遵循 RFC 4122 规范来生成组件 GUID?

顾嘉德
2023-03-14

在安装之前,我需要将客户环境中的一些文件添加到现有的msi中。为了做到这一点,我们有C# WinForms项目来生成转换。mst)文件,并使用. cab将这些文件添加到其中,对于新文件,将创建新的组件,并生成一致的唯一GUIDs。但是,我不确定这些guid是否符合Installshield生成的guid或MSI技术?

安装防护是否遵循 RFC 4122 规范来生成组件 GUID?如果是,是哪个版本?

另外,我是否也需要处理GUID冲突?

共有1个答案

山乐生
2023-03-14

推荐阅读:请阅读本答案关于:何时更改MSI组件GUIDS。对MSI SDK的快速搜索没有发现任何关于RFC的内容。

WiX源代码:这里的WiX源码中提到了RFC 4122:RFC 4122的实现-通用唯一标识符(UUID)URN命名空间(还有一个)。

各种GUID:包中的所有GUID必须是唯一的——当然。如果文件仍然安装到相同的位置,组件GUID应该在不同的版本中保持稳定(为什么?)。包GUID应该总是新的(因为它标识了一个唯一的MSI文件)。产品代码必须在适当的时候更改(对于小升级,您必须在新版本中使用相同的产品代码),升级代码通常在不同的版本中保持相同,以标识相关的产品/安装程序。GUID上的高级安装程序和我的旧答案是一样的。

注册表格式:Windows Installer需要“注册表格式”的GUID和所有大写字母(请参阅MSI SDK)。下面是使用Visual Studio Tools菜单中的创建GUID工具的插图:

WiX工具集:该工具集具有“GUID自动魔法”功能,将自动将WiX XML标记文件中格式不正确的GUID转换为编译MSI中使用的正确格式。

WiX快速入门链接。

链接:

  • https://en.wikipedia.org/wiki/Universally_unique_identifier
  • Flexera/Installshield:关于Windows Installer中的组件、软件包、产品和升级代码
  • http://www.installsite.org/pages/en/isnews/200012/index.htm
  • PcaGuidToRegFormat(更多)
 类似资料:
  • 作为一个相对的Java新手,我很困惑地发现了以下几点: 点. java: Edge.java: 主代码段:私有集blockedEdges 为什么这令人惊讶?因为在我将其编码为依赖平等之前,我检查了留档,它说: 如果该集合包含指定的元素,则返回true。更正式地说,当且仅当这个集合包含元素e,使得(o==null?e==null : o.equals(e)) 这句话非常清楚,它指出只需要相等。f.e

  • 问题内容: 这个问题是该问题的后续解决方案:JPAConstraintViolation与回滚 我对JPA和验证API(JSR-303)的组合进行了一些测试。 我在JPA规范中找到了以下内容(第101-102页): 默认情况下,默认Bean验证组(默认组)将在持久化和更新前生命周期验证事件时进行验证 … 如果validate方法返回的ConstraintViolation对象集不为空,则持久性提供

  • 开发原则: 1、调研放在开发前,丰富功能是第一 2、新旧功能要区分,增新改旧要慎重 3、上线通告要周知,邮件一定写明白

  • 问题内容: 我是Scala的新手,所以我可能对此不太了解,我想知道问题是否出在我的代码上。鉴于Scala文件httpparse,简化为: 使用哪个(URL没关系,这是一个玩笑的示例): 结果总是: 我已经看到有关Java 的Stack Overflow线程 ,以及有关不尝试通过Web访问此DTD 的W3C的System Team Blog条目 。我也将错误隔离到XML.load()方法,据我所知,

  • 一个*.vue文件是一种自定义的文件格式,使用类似于HTML的语法来描述一个Vue组件。每个*.vue文件由三种类型的顶级语言块组成:<template>、<script>和<style>,以及可选的其他自定义块: <template> <div class="example">{{ msg }}</div> </template> <script> export default { d

  • 对于来说,肯定有某种方法可以产生这个输出,不是吗?我发现有一些将映射到,所以似乎有一种方法可以让它产生类型,但我没有找到