Изменение переменных среды VS2010 для WIX - PullRequest
5 голосов
/ 30 ноября 2011

Мне нужно собрать две фирменные версии моего установщика на основе WIX.Единственная разница между версиями - это одно растровое изображение, содержащее контактные данные компании.Я хотел бы сохранить один проект WIX, чтобы у меня было меньше проектов для обслуживания.Я использую переменную окружения, чтобы изменить, какое растровое изображение вставлено в установщик

Source="$(env.CompanyName) contact.png"

Это работает нормально, однако я не могу изменить переменную окружения из VS2010.VS2010 компилирует установщики WIX, используя переменные среды, которые были установлены при запуске VS2010.Я должен перезапустить VS2010, чтобы он взял новое значение переменной среды.

У меня есть 36 вложенных проектов, поэтому я не хочу устанавливать переменные сборки в каждом проекте - вот почему япытается использовать переменную окружения.

Кто-нибудь знает, как изменить одну из переменных окружения, используемых текущим экземпляром VS2010?Или, может быть, есть лучший способ?

1 Ответ

8 голосов
/ 30 ноября 2011

Я делаю это и значительно больше настроек в одном проекте WiX. У меня есть разные конфигурации проекта для каждого варианта. Поэтому вместо «Отладка» и «Выпуск» я имею в виду, например, «Отладка», «Восток» и «Запад». Это относится только к проекту установки. Проекты кода все еще используют «Debug» и «Release». Компилятор WiX может прочитать значение конфигурации.

<?if   $(var.Configuration)="West"?>
  <?define CompanyName="West Coast Office"?>
<?elif $(var.Configuration)="East"?>
  <?define CompanyName="East Coast Office"?>
<?else?>
  <?define CompanyName="Debugging purposes"?>
<?endif?>

Source="$(var.CompanyName) contact.png"

Кроме того, вы можете добавить его в переменные препроцессора проекта установки (Project Properties, Build, General), но, опять же, вам потребуется несколько конфигураций:

CompanyName=West Coast Office

А в вашем Product.wxs:

Source="$(var.CompanyName) contact.png"

Чтобы добавить конфигурации в Visual Studio:

  1. Открыть меню Сборка, диспетчер конфигурации ...

    Создание конфигураций решения

  2. Под Активные конфигурации решений выберите <Новый ...>
  3. Введите имя (например, Восток ), Копируйте настройки из Release и не не создают новые конфигурации проекта.
  4. Повторите шаги 2 и 3 для другого офиса (например, Запад ).

    Создание конфигураций проекта установки

  5. Рядом с проектом установки откройте раскрывающийся список Configuration и выберите
  6. Введите имя Восток , Копируйте настройки из Выпуск и не создавайте новые конфигурации проекта.
  7. Повторите шаги 5 и 6 для Запад .

    Удалить конфигурацию выпуска проекта настройки

  8. Рядом с проектом установки откройте раскрывающийся список Configuration и выберите
  9. Выберите Отпустите и нажмите Удалить , затем Да и Закрыть .

    Удалить конфигурацию выпуска решения

  10. Под Активные конфигурации решений выберите <Правка ...>
  11. Выберите Отпустите и нажмите Удалить , затем Да и Закрыть .

    Назначить конфигурации проекта для конфигураций решения

  12. Под Активные конфигурации решений выберите Восток .
  13. Установите конфигурацию проекта установки на Восток и конфигурацию каждого другого проекта на Release . Отметьте Построить рядом с каждым проектом (при условии, что вам нужны все).
  14. Повторите шаги 12 и 13 для Запад .

Теперь, когда вы выбираете каждую конфигурацию решения, у вас должны быть следующие настройки:

Solution       Debug    East     West
------------------------------------------
Main Project   Debug    Release  Release
Setup Project  Debug    East     West

Наконец, перейдите в свойства проекта установки и убедитесь, что все правильно для конфигураций Восток и Запад. Запомните выходную папку. Если это все еще bin \ Release , то две конфигурации будут перезаписывать выходные данные друг друга. Установите bin \ East и bin \ West соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...