Подтвердить что ты не робот

Проекты С#, правильное управление версиями, компания и т.д. При развертывании

Моя компания работает над продвижением нашего развития с С++.NET на С#. Наш продукт имеет стандартный ежемесячный выпуск (например, 5.0.19.2...).

В С++.NET у нас был обычный файл app.rc, который стандартизовал информацию о компании, а также номер версии. Поскольку каждый проект в рамках решения будет включать один и тот же файл app.rc один раз, было очень легко изменить информацию о версии более чем на 200 проектах.

Как это решение переводится в мир С#? Вопросы, которые я проверил, прежде чем писать это, упоминают об этом через окно свойств в проводнике решений, но это не то, что я хочу.

Я знаю, что assemblyinfo.cs содержит информацию, которую я хочу изменить, но я не думаю, что у меня мог бы быть один главный файл. Нужно ли разбить его на несколько файлов?

Спасибо заранее!

4b9b3361

Ответ 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 вручную). Когда они будут созданы, все они будут использовать этот файл.

Ответ 5

Я предлагаю иметь информацию о версии для каждого проекта, учитывая, что они 400 или могут быть настолько большими, что чрезвычайно важно знать при каждой новой большой настройке, какие версии сборок входят в эту настройку. Каждая сборка, разработанная разными людьми, как отдельные проекты, и, наконец, они закончились одной большой мозаикой вашего основного приложения, с ней MainVersion.

С уважением.