0

We use myget.org as NuGet server and here I upload a package named e.g. mypackage with two different major versions e.g. 6.0.1 and 7.0.1, and there can be several versions for each major version but I always want to have the latest version though the correct specified major version. So in one branch of my code I want to have 6.0.X (X = latest) and from another branch I want to have 7.0.X

Currently I do below in my msbuild, where MyPackage id have major version in the name, but that is not scalable.

<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" />

I would perfer to do it from a msbuild script. Is it possible?

Simplified example

Build.msbuild file:

<?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>

In the same folder I have a 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>

From my developer command I type: msbuild build.msbuild But no NuGet is installed so it doesn't make much sense to use wildcard before this simple scenario works.

JerryA
  • 153
  • 1
  • 8

0 Answers0