MsBuild C# csproj: добавить имя свойства среды разработки (Win, Ma c, et c) в свойство - PullRequest
2 голосов
/ 08 марта 2020

Контекст: проект c# (. net 3.5) предоставлен в распоряжение группы разработчиков, которые строят проект на разных платформах (Win, Ma c, et c). Проекту требуется доступ к некоторым ссылочным DLL-файлам, но в зависимости от платформы сборки devs они находятся в разных местах.

Хотя разработчики, очевидно, могут добавлять свои собственные ссылочные пути или просто копировать в папку dependencies и т. д. c., это немного тяжело.

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

Итак, для Windows dev сред мы создали группу свойств, которая проверяет файлы в нескольких местах (даже до проверки реестра) и результаты выскакивает в $(ManagedDllPath) свойство. Это меньше, чем делать при выполнении клона репо fre sh, и разработчики это ценят.

Теперь наши разработчики Ma c и Linux тоже этого хотят; очевидно, у них разные пути к папкам.

В идеале я хочу иметь одну группу свойств для каждой платформы (Win, Ma c, Linux) с условием, подобным следующему:

<PropertyGroup Condition="'$(DevPlatform)' == 'Win'">
   // determine reference dll location
</PropertyGroup>

<PropertyGroup Condition="'$(DevPlatform)' == 'Mac'">
   // determine reference dll location
</PropertyGroup>

<PropertyGroup Condition="'$(DevPlatform)' == 'Linux'">
   // determine reference dll location
</PropertyGroup>

Как я могу получить имя ОС для платформы dev?

<DevPlatform> ??? </DevPlatform>

Мы используем VS2019 или Rider IDE. Мы застряли на. Net Framework 3.5: /

...