Проекты С#, правильное управление версиями, компания и т.д. При развертывании
Моя компания работает над продвижением нашего развития с С++.NET на С#. Наш продукт имеет стандартный ежемесячный выпуск (например, 5.0.19.2...).
В С++.NET у нас был обычный файл app.rc, который стандартизовал информацию о компании, а также номер версии. Поскольку каждый проект в рамках решения будет включать один и тот же файл app.rc один раз, было очень легко изменить информацию о версии более чем на 200 проектах.
Как это решение переводится в мир С#? Вопросы, которые я проверил, прежде чем писать это, упоминают об этом через окно свойств в проводнике решений, но это не то, что я хочу.
Я знаю, что assemblyinfo.cs содержит информацию, которую я хочу изменить, но я не думаю, что у меня мог бы быть один главный файл. Нужно ли разбить его на несколько файлов?
Спасибо заранее!
Ответы
Ответ 1
Вы можете добавить файл в качестве ссылки вместо фактического файла. Например, мое решение может быть:
Solution
- My Project
- Properties
- AssemblyInfo.cs
- SharedAssemblyInfo.cs (Linked)
- Solution Items
- SharedAssemblyInfo.cs
Когда вы добавляете существующий элемент в решение, вы можете использовать стрелку раскрывающегося списка на ссылке Add
и выбрать Add as Link
. Файл SharedAssemblyInfo.cs
может содержать общие/общие атрибуты сборки, например:
[assembly: AssemblyVersion("2.0.*")]
[assembly: AssemblyFileVersion("2.0.0.0")]
[assembly: AssemblyCompany("My Company")]
... и т.д. Локальный проект может содержать специфические для проекта атрибуты:
[assembly: AssemblyTitle("My Assembly")]
... и т.д.
Ответ 2
Общепринятой практикой в решениях С# является комментировать информацию о версии в сборкеinfo.cs каждого проекта, а затем иметь единую общую "shared_assemblyinfo.cs" (по вкусу), которая содержит информацию о версии и доступна для всех проектов...
Ответ 3
У вас может быть один файл информации об ассемблере и только указать в нем версию сборки:
using System;
using System.Reflection;
[assembly: AssemblyVersion("1.0.0.0")]
Затем вы просто добавляете файл в качестве ссылки к каждому из ваших других проектов (вам придется удалить атрибут AssemblyVersion из каждого из файлов Properties\AssemblyInfo.cs
вручную). Когда они будут созданы, все они будут использовать этот файл.
Ответ 4
Мастер assembly.cs возможен - просто удалите файл assembly.cs проекта и повторно добавьте мастер assembly.cs в каждый проект с опцией "Как ссылка" в диалоговом окне "Добавить файл".
http://www.tigraine.at/2009/01/22/sharing-a-common-assemblyinfo-between-projects-in-a-solution/
Ответ 5
Я предлагаю иметь информацию о версии для каждого проекта, учитывая, что они 400 или могут быть настолько большими, что чрезвычайно важно знать при каждой новой большой настройке, какие версии сборок входят в эту настройку. Каждая сборка, разработанная разными людьми, как отдельные проекты, и, наконец, они закончились одной большой мозаикой вашего основного приложения, с ней MainVersion.
С уважением.