Установите два взаимоисключающих файла с одинаковым именем в один и тот же каталог - PullRequest
1 голос
/ 08 ноября 2019

Моя программа развертывается с параметром конфигурации, который я выбрал для использования в качестве функции. Эта опция может иметь одно из двух значений.

Каждая конфигурация изменяет набор файлов настроек. Они имеют разные имена входных файлов (например, давайте назовем это 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 установщика.

1 Ответ

1 голос
/ 08 ноября 2019

Немного поспешно, посмотрите ...

Молоко и мед Винни : В таких случаях я предпочитаю устанавливать оба файла с разными именами, используядва разных компонента, а затем переключаться между ними с помощью опции, показанной в самом приложении. При запуске или в настройках. Упрощает развертывание, оно уже сложное (раздел «Сложность развертывания» ). связанный ответ , на который вы ссылаетесь, может работать технически, так же как и более хакерские подходы.

Альтернативы : у меня есть длинный ответ на разныеСпособы установки файлов настроек: Создание папки и файла в профиле текущего пользователя, от профиля администратора , начиная от удаления всего файла и использования внутренних настроек по умолчанию, до загрузки файлов настроек из сети или простоопираясь на получение настроек облачного веб-сервиса из базы данных. Не совпадает на 100%, но, может быть, вам это поможет?


Проблема связана с тем, что у вас есть файл настроек, в который обычные пользователи не могут писать. Вот список подходов для устранения этого условия: System.UnauthorizedAccessException при запуске .exe в программных файлах .

...