Попытка переместить файл Wix .wxl в проект Wix .wixlib

Настройка

Итак, у меня есть два проекта Wix, один из которых является нашим основным с файлом Product.wxs, а второй - нашей библиотекой общих файлов.wxs. Наш основной проект Wix ссылается на библиотечный. Это также все в решении Visual Studio 2015. Основной проект Wix также содержит файл.wxl (материал WixLocalization).

Что я пытаюсь достичь

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

Проблема, с которой я сталкиваюсь

Когда я копирую файл в проект библиотеки и удаляю исходный файл в основном проекте, я получаю кучу ошибок компиляции в Visual Studio, говорящих: "Переменная локализации!(Loc.NameOfString) неизвестна. Убедитесь, что переменная определены.". Я получаю эту ошибку при компиляции основного проекта. Библиотека Wix одна успешно компилируется. Поэтому из-за этого я больше не могу создавать установщик.

Что я сделал до сих пор

Я пытался найти такую ​​тему использования файла.wxl в проекте библиотеки Wix, но безуспешно.

Я попытался покопаться, если есть какой-то другой синтаксис для использования этих значений String, если они перемещены в библиотеку Wix, кроме синтаксиса "!(Loc.StringName)".

Я также проверил файлы проекта, чтобы увидеть, есть ли какая-то ссылка, которую мне нужно добавить, или что-то еще. Самое смешное в этом то, что значения String в.wxl используются только в файлах.wxs в самой библиотеке. Например, у меня есть файл UW Dialog .wxs в библиотеке, и он использует строковое значение "!(Loc.Title)" из файла.wxl. Файл Product.wxs в основном проекте не использует эти строковые значения.

Я нахожу очень странным, что проект библиотеки Wix не может найти / использовать.wxl внутри себя....

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

Любая помощь будет очень признательна. Если я не достаточно ясно, пожалуйста, не стесняйтесь просить уточнить любые запутанные детали. Пожалуйста и спасибо!

1 ответ

Решение

Все, что вам нужно сделать, это сообщить компоновщику WiX, какую культуру использовать при создании основного проекта. Библиотеки WiX могут содержать несколько культур, поэтому вам нужно выбрать один.

Так как вы используете проект Visual Studio WiX, вы можете просто сделать это в окне свойств проекта. Щелкните правой кнопкой мыши> Свойства> Построить> Культуры, чтобы построить.

Свойства проекта WiX

Если вместо этого используется командная строка, это следующий параметр "light.exe":

-cultures:<cultures>  semicolon or comma delimited list of localized
                      string cultures to load from .wxl files and libraries.
                      Precedence of cultures is from left to right.

Пример:

light.exe [other parameters] -cultures:en-US
Другие вопросы по тегам