1

我的程序使用我选择作为功能公开的配置选项进行部署。此选项可以是两个值之一。

每个配置都会更改一组设置文件。它们有不同的输入文件名(为了举例,我们称之为option1-config20-lv80.xml),但应该作为config20-lv80.xml安装到配置目录。每个选项都有一个前缀,应该像这样去掉,这也意味着一次只能选择其中一个选项进行安装。但是,即使在选择另一个功能时阻止安装一个功能的条件下,我的输出还是乱七八糟:

LGHT0204: ICE30: The target file 'config20-lv80.xml' is installed in 'path' by to different components... This breaks component reference counting.

如何让我的用户在这些配置选项之间进行选择,并在没有任何负面影响的情况下解决我的 ICE30 问题?

我看到回答了一个类似的问题,但我不是 100% 确定如何在 wix# 中实现它,或者是否有其他方法可以在不禁用 ICE30 验证或创建 2 个安装程序的情况下实现我的目标。

4

1 回答 1

1

有点着急,看看。。。

Milk & Honey Winnie:在这种情况下,我更喜欢使用两个不同的组件安装具有不同名称的两个文件,然后使用应用程序本身中显示的选项在它们之间切换。在启动时或在首选项中。使部署更简单,它已经很复杂( “部署的复杂性”部分)。您提到的链接答案可以在技术上工作,更hacky的方法也可以。

替代方案:我在这里对安装设置文件的不同方法有一个很长的答案:在当前用户配置文件上创建文件夹和文件,从管理员配置文件,从消除整个文件和使用内部默认值,到从网络下载设置文件或仅仅依靠从数据库中检索云网络服务设置。不是 100% 匹配,但也许可以略读一下?


一个相关的问题是当您有一个普通用户无法写入的设置文件时。这是消除这种情况的方法列表:System.UnauthorizedAccessException while running .exe under program files

于 2019-11-08T17:46:13.233 回答