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

Повторно используемые элементы PropertyGroup в файле csproj

У меня есть ряд свойств, которые мне нужно установить в ~ 15 проектах. Есть ли способ разместить эти свойства в одном файле и все файлы проектов ссылаются на один файл, используя некоторую директиву импорта, а не дублируя свойства в каждом файле проекта?

EDIT: Чтобы уточнить, я говорю о <PropertyGroup> элементах в файле csproj. Для всех проектов требуется такая же серия настроек <PropertyGroup>. Эти элементы устанавливают такие свойства, как DebugSymbols или DefineDebug, и не используются для ссылки на исходные файлы.

4b9b3361

Ответ 1

Для этого может использоваться элемент <Import>, аналогичный тому, как используются файлы пользовательских целей.

Файл многоразового использования должен выглядеть следующим образом:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <!-- Properties go here -->
    </PropertyGroup>
</Project>

Обратите внимание, что требуется иметь корневой элемент Project с объявлением xmlns - VS не будет загружать проект, ссылающийся на этот файл без него.

Я сохранил свои настройки свойств в своем каталоге решений как ProjectBuildProperties.targets.

Чтобы включить файл в другие проекты, я добавил это в файлы csproj:

<Import Project="$(SolutionDir)ProjectBuildProperties.targets"/>

И он работает!

Ответ 2

Вы можете создать общий файл MSBuild, который может быть импортирован всеми проектами.

Этот post обсуждает это решение и демонстрирует его здесь