Как определить с каким do tnet sdk собирается сборка - PullRequest
2 голосов
/ 05 мая 2020

Есть ли способ определить, с каким do tnet SDK собирается сборка (таргетинг на do tnet core)?

До сих пор мы не использовали global. json, чтобы указать, с каким do tnet SDK для сборки наших сборок, то есть используется последняя версия SDK. Недавно мы перешли на do tnet 3.1.x для новых проектов, но все еще есть много проектов, нацеленных на do tnet 2.1.x

Я не уверен, какие тонкие изменения (или даже ошибки?) могут быть внесены при создании проекта, ориентированного на do tnet 2.1.x с do tnet 3.1.x SDK

Чтобы быть уверенным, что мы будем использовать global. json (чтобы определить, какая. NET версия Core SDK используется при сборке). И, если возможно, собираемся проверить, сколько сборок уже было отправлено, которые были собраны с более высоким do tnet core SDK. Возможно ли такое?

1 Ответ

2 голосов
/ 05 мая 2020

Примечание: может быть более простой способ сделать это, но я не знаю его на данный момент. Я не знаю ни одного способа определить его из существующей сборки .

При сборке с. NET Core SDK устанавливается свойство NETCoreSdkVersion MSBuild.

Вы можете создать цель с BeforeTargets="CoreCompile", которая генерирует исходный код, включая это свойство сборки, чтобы добавить атрибут уровня сборки (который вам нужно будет определить самостоятельно). Это было бы похоже на то, как AssemblyInfo.g.cs уже сгенерировано.

Боюсь, у меня нет времени, чтобы собрать полный пример прямо сейчас, но вы можете увидеть пример автоматизированного кода поколение здесь . Это часть каталога targets в пакете NuGet, поэтому код, зависящий от этого пакета, генерирует код автоматически; вы можете сделать что-то подобное, или, если все в одном решении, вы можете использовать Directory.Build.targets или аналогичный.

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