Задача 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>
Другие вопросы по тегам