小编Sim*_*mon的帖子

WiX在卸载时不会删除registrykey

我创建了一个带有条件DISABLEMSIUPGRADE的组件,当我使用我们的ExternalUI安装MSI时,它已经设置好了.但是,MSI不会删除UnInstall上的条目.我认为问题是由条件引起的,但我无法修复它.

<Component Id="compMSI" Guid="5f18af6a-b839-4b4d-9d4f-79cf7826f749">
  <Condition>DISABLEMSIUPGRADE</Condition>

  <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(var.PGuid)" Action="createAndRemoveOnUninstall">
    <RegistryValue Name="DisplayName" Type="string" Value="$(var.ProductTitle)" />
    <!-- ... -->
  </RegistryKey>
</Component>
Run Code Online (Sandbox Code Playgroud)

我甚至将RemoveRegistryKey元素放在其他组件中以确保键被删除,但这也没有完成工作......

我还尝试在Key中存储和读取DISABLEMSIUPGRADE属性.

//编辑:我进行了一些实验,发现CONDITION元素不是原因.我看起来如果我安装了另一个版本的安装程序,则注册表项不会被删除.可能导致什么?

installation windows-installer wix

8
推荐指数
1
解决办法
9622
查看次数

使用资源文件而不是附属程序集

我们使用的是使用附属程序集进行本地化的.NET组件.但是,如果我们想要创建自己的翻译,我们必须发送我们的翻译或支付源代码,以获得用于签名的密钥文件.

是否可以在主应用程序中加载.resources文件,以便组件使用本地化字符串?

非常感谢!

c# installation installer windows-installer wix

6
推荐指数
1
解决办法
309
查看次数

使用IStream拖放虚拟文件

我想启用从基于Windows窗体的应用程序拖放到Windows资源管理器.最大的问题:文件存储在数据库中,因此我需要使用延迟数据渲染.有一篇关于codeproject.com文章,但作者正在使用一个H_GLOBAL对象,这会导致文件大于aprox的内存问题.20 MB.我没有找到使用IStream对象的工作解决方案.我认为必须有可能实施,因为这不是一个不寻常的情况.(例如,FTP程序也需要这样的功能)

编辑:当用户删除文件时是否可以获取事件?所以我可以将它复制到temp并且资源管理器从那里获取它?也许有一个替代方法来解决我的问题......

c# drag-and-drop

5
推荐指数
1
解决办法
4866
查看次数