Мы используем myget.org в качестве сервера NuGet, и здесь я загружаю пакет с именем, например, mypackage, с двумя различными основными версиями, например 6.0.1 и 7.0.1, и может быть несколько версий для каждой основной версии, но я всегда хочу иметьпоследняя версия, хотя указана правильная основная версияТак что в одной ветви моего кода я хочу иметь 6.0.X (X = последний), а из другой ветви я хочу иметь 7.0.X
В настоящее время я делаю ниже в моей msbuild, где идентификатор MyPackage имеют основную версиюв имени, но это не масштабируется.
<ItemGroup>
<Packages Include="MyPackageX">
<Source>https://xxx.myget.org/myfeed/index.json</Source>
</Packages>
</ItemGroup>
<Exec Command="$(NugetExe) install %(Packages.Identity) -Source %(Source)
-OutputDirectory $(PackagesFolder)\Package -ExcludeVersion -noninteractive
-prerelease -verbosity detail" />
Я бы предпочел сделать это из сценария msbuild.Возможно ли это?
Упрощенный пример
Файл Build.msbuild:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NLog" Version="4.6.3" />
</ItemGroup>
<Target Name="Build" />
</Project>
В той же папке у меня есть nuget.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositorypath" value="packages" />
</config>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
В моей команде разработчика я набираю: msbuild build.msbuild Но NuGet не установлен, поэтому нет смысла использовать подстановочный знак до того, как этот простой сценарий сработает.