Создать два (слегка) отличающихся исполняемых файла из одного проекта Visual c #

#c# #msbuild #build

#c# #msbuild #сборка

Вопрос:

У меня есть проект Visual c #, из которого я хочу скомпилировать два исполняемых файла: Full.exe, и Limited.exe. Limited.exe просто скрывает пару элементов управления пользовательского интерфейса.

Я подумываю добавить еще одну пару конфигураций решения (DebugLimited и ReleaseLimited), которые просто устанавливают флаг, а затем в моем сценарии сборки просто создайте мое приложение с конфигурацией выпуска и с конфигурацией с ограничениями выпуска.

Есть ли более простой способ добиться этого?

Ответ №1:

Если вам действительно нужны 2 разных исполняемых файла, этот подход работает. Убедитесь, что каждый вариант встроен в свой собственный каталог. Опция «Сборка-> пакетное построение» позволит вам создать их все сразу.

Если цель состоит в том, чтобы иметь разный пользовательский интерфейс вместо разных исполняемых файлов, вы можете использовать настройку в файле .config, чтобы управлять тем, какой пользовательский интерфейс показывать / скрывать (с соответствующим кодом для включения / выключения элементов управления).

Ответ №2:

Я бы сделал пару проектов. Один называется полным, а другой — ограниченным. Это просто обертки вокруг вашего основного проекта, и перед запуском установите соответствующие параметры. Таким образом, при полной сборке вашего решения вы всегда получаете оба исполняемых файла.

Комментарии:

1. Как мне создать просто оболочку вокруг проекта? Мой проект среднего размера — около 15 окон, некоторые другие элементы управления, файлы изображений и т.д.

2. @Martin: Я должен думать, что вы превращаете свой проект в библиотеку, и ваши исполняемые проекты ссылаются на библиотеку.

3. В чем было бы преимущество по сравнению с дополнительным набором конфигураций в дополнение к сборке всех сборок обоих приложений?

4. @Martin: Я предполагаю, что при сборке с использованием конфигураций одновременно создается только один исполняемый файл и что мой ответ позволяет вам создавать оба при сборке решения.