- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我试图在应用程序安装时将 MediaSourceDir 写入注册表,但它总是插入一个空值。我成功地能够在安装时将 SourceDir 写入注册表,我的 .wxs 文件中有以下内容:
<RegistryValue Type="string" Name="MediaSourceDir" Value="[MediaSourceDir]" />
<RegistryValue Type="string" Name="SourceDir" Value="[SourceDir]" />
我使用详细的日志记录运行安装程序,下面是一些有趣的部分:
MSI (c) (70:48) [16:30:17:332]: PROPERTY CHANGE: Adding SourceDir property. Its value is 'D:\'.
MSI (c) (70:48) [16:30:17:332]: PROPERTY CHANGE: Adding SOURCEDIR property. Its value is 'D:\'.
MSI (c) (70:48) [16:30:17:332]: PROPERTY CHANGE: Adding MediaSourceDir property. Its value is '1'.
所以看起来它正在正确获取必要的安装程序属性。但是稍后在日志文件中,当它向注册表添加值时,它报告以下内容:
MSI (s) (C4:F0) [16:30:31:525]: Executing op: RegAddValue(Name=MediaSourceDir,,)
MSI (s) (C4:F0) [16:30:31:530]: Executing op: RegAddValue(Name=SourceDir,Value=D:\,)
如您所见,MediaSourceDir 键的值为空。当我为 SourceDir 做一些如此相似的事情并且它可以无缝工作时,我很困惑为什么这不起作用。任何见解将不胜感激。
最佳答案
虽然您显然很清楚,但我应该(对其他人)指出 MediaSourceDir仅当您从可移动媒体(CD/DVD/USB 等)安装时才会设置。这样就很清楚了。否则它为空白/未设置并尝试保留它会产生一个空字符串。
但是,我也看到了 MediaSourceDir 无法像您对 SourceDir 所做的那样持续存在的问题。我通过使用 SetProperty 自定义操作将 MediaSourceDir 的值分配给公共(public)属性来使其工作,但是当设置以静默方式运行时它不起作用。
<Property Id='MYPROPERTY' Secure='yes' />
<SetProperty Id="MYPROPERTY" After="FindRelatedProducts" Value="[MediaSourceDir]" Sequence="first" />
<..>
<Component Feature="ProductFeature">
<RegistryValue Root='HKLM' Key='SOFTWARE\Wix\DemoRememberProperty'
Name='MediaSourceDirMYPROPERTY' Value='[MYPROPERTY]'
Type='string' />
<..>
</Component>
我们要知道持久化的目的是什么?您能否改用 MSI API 来确定安装源驱动器是否为可移动驱动器?
稍后再看这个。 WiX's Remember Property Pattern .
我删除了一整段有关 Private 和 PUBLIC 属性以及它们在延迟模式下如何不同地处理的内容,不确定这是否已经是您研究过的内容,但似乎没有太大必要。
关于windows - 引用安装程序属性的 Wix RegistryValue 始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51958297/
这给我留下了\Default.udl 我想要像 C:\Program Files\Company\Product\Default.udl 这样的东西 最佳答案 我能想到一些可能导致问题的原因
我目前正在维护一个软件,其中包含大量用户定义的注册表项。我正在尝试制作一个 WIX 安装程序,以尽可能少地保留这些注册表项可维护性的数量。我决定让注册表项中的每个值成为它自己的组件,以允许我使用 WI
我试图在应用程序安装时将 MediaSourceDir 写入注册表,但它总是插入一个空值。我成功地能够在安装时将 SourceDir 写入注册表,我的 .wxs 文件中有以下内容: 我使用详细的日
这是我想要的输出: 这是我的 XSLT 文件: no
我是一名优秀的程序员,十分优秀!