VS2010 пользовательские сборки - PullRequest
0 голосов
/ 24 октября 2011

У меня есть приложение на C # / WPF. Я пытаюсь создать разные версии, которые будут разосланы разным клиентам со своим брендом. Брендинг в настоящее время находится в AssemblyInfo.cs, значок, заставка, имя exe.

Я подумал, что смогу создать отдельные конфигурации проекта, а затем подумал, что могу просто создать отдельные файлы AssemblyInfo.cs для каждого клиента.

Но проект, по-видимому, разрешает только одну сборочную информацию и не позволяет изменять ее для каждой конфигурации (например, это первая вкладка в диалоге свойств проекта).

Есть ли лучший способ как-то поместить информацию AssemblyInfo.cs в ресурс, а затем иметь несколько файлов ресурсов, по одному для каждого клиента, и иметь отдельные конфигурации, которые связываются с другим ресурсом?

Тогда я надеялся, что, продолжая разработку, я смогу разработать систему под собственным брендированием, а затем просто Batch Build всех выпусков, чтобы выпустить exe для каждого клиента.

Любая помощь или предложения о том, как я могу найти решение, которое можно отремонтировать, было бы здорово.

1 Ответ

2 голосов
/ 24 октября 2011

Файл AssemblyInfo.cs, будучи файлом классов, фактически не содержит никакой информации о классе, по умолчанию он просто содержит атрибуты.Вы можете использовать условные символы компиляции вокруг этих атрибутов:

#if MY_SYMBOL
[assembly: AssemblyTitle("Tim's Magical Application")]
#else
[assembly: AssemblyTitle("Some Other Name")]
#endif

вы также можете использовать свои собственные пользовательские атрибуты .

Но проект, похоже, допускает только одну сборкуinfo

Этот файл находится в папке Properties проекта.Вы также можете иметь другой файл .cs рядом с другим списком атрибутов (например, AssemblyInfo.custom.cs ).Любые записи, которые вы изменяете в диалоговом окне свойств проекта, отражаются в исходном файле AssemblyInfo.cs, оставляя ваш пользовательский нетронутым.

Так что, если вы решите использовать атрибуты в AssemblyInfo.cs для управления брендингом конкретного клиента, тогдау вас есть несколько способов сделать это.Лично я хотел бы, чтобы нейтральное изображение было свободно упаковано, и использовал бы либо мой процесс сборки, либо сборку установщика, чтобы включить соответствующие распространяемые образы в распространяемый пакет (заменяя нейтральное изображение).

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