2014-09-26 11 views
0

У меня есть настольное приложение WPF C# (.Net 4.0), которое создается и распространяется как однофайловый исполняемый файл. Мы используем Visual Studio 2013.Создание двух версий одного и того же приложения

Теперь у нас есть ситуация, когда нам нужно создать отдельную версию этого приложения, которая почти идентична, но имеет разный «брендинг» - в основном, один рисунок для логотипа и изменение на несколько бит текста.

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

+0

Существует много способов сделать это, условная компиляция, создать новую конфигурацию или иметь несколько проектов .exe и использовать общий проект для общих элементов - назвать три. – AnthonyLambert

+0

Если бы это был я, у меня был бы класс _Theme_ для включения изображения логотипа (URI или иначе) и текста. Класс можно сериализовать в XML, а затем прочитать во время выполнения. Для каждого варианта приложения это просто другой XML-файл. – bdimag

+0

К сожалению, мне нужно сохранить приложение в виде одного исполняемого файла без файлов поддержки или любых других зависимостей. Это долгая история ...:/ – KenD

ответ

1

Если вы используете Visual Studio 2013, я бы посмотрел на новую функцию Shared Projects.

В принципе, у вас тогда возникли бы два проекта .exe, которые были бы разными, а затем они будут ссылаться на общие части, определенные в общем проекте.

Ссылка, приведенная выше, должна дать вам несколько примеров, они используют ее для приложений Windows 8, но она будет работать для любого типа, включая WPF.

1

Это зависит от уровня настройки. Если ваш просто выгрузив логотипы, цвета и, возможно, шрифты - поместив их в качестве ресурсов в словаре ресурсов, а затем ссылки на них с помощью DynamicResource связывания ...

<Label Content="{DynamicResource CompanyName}"\> 

Вы можете сделать несколько вещей ...

Первый вариант, создайте дублирующие ресурсные словари для каждого брендинга и загрузите соответствующий флажок при запуске - возможно, на основе ключевого значения в app.config. [введите описание ссылки здесь] [Настроить предложение].

Второй вариант - это вспомогательный класс для установки значений ваших ресурсов в коде.

Всего несколько предложений, на которые я надеюсь, могут помочь.

Смежные вопросы