Задача Nuget игнорировать пользовательские версии ссылочных проектов
Я использую VS2017, и я написал собственный MSBuild SDK, который создает версию для каждого проекта, но не обновляет файл проекта обновления. версия, созданная и упоминаемая в SDK. Эта работа очень хороша для самого проекта, и это отразится на созданном пакете nuget из проекта.
но когда я ссылаюсь на проект из другого проекта и создаю пакет nuget из этого второго проекта, он всегда создает зависимость от версии 1.0.0 моего первого проекта.
Похоже, задача пакета nuget выглядит только сам файл проекта и никогда не запускать мой SDK для обновления версии проекта.
Теперь вопрос:
- Есть ли какое-либо пользовательское свойство
, чтобы указать его версию - Или есть какой-нибудь пакет, который я могу использовать для самостоятельного создания пакетов nuget и вставки туда ссылки на проект
1 ответ
В конце концов я нахожу ответ, ища в NuGet.Build.Tasks.Pack.targets
,
Когда NuGet захочет упаковать проект, он вызовет _GetProjectVersion из ссылочных сборок, чтобы получить их версию, и это зависит от GetPackageVersionDependsOn
,
Поэтому единственное, что я должен сделать, это добавить задачу, которую я использую для обновления версии моего проекта, в GetPackageVersionDependsOn
в моем Sdk.props
:
<PropertyGroup>
<GetPackageVersionDependsOn>
UpdateVersion;$(GetPackageVersionDependsOn)
</GetPackageVersionDependsOn>
</PropertyGroup>