我们使用myget.org作为NuGet服务器,在这里我上传了一个名为e.g.具有两个不同主要版本的mypackage,例如6.0.1和7.0.1,每个主要版本可以有多个版本,但是我始终希望通过正确的指定主要版本获得最新版本。因此,在我的代码的一个分支中,我想要6.0.X(X =最新),而在另一个分支中,我想要7.0.X
目前,我在下面的msbuild中执行此操作,其中MyPackage id的名称具有主要版本,但不能扩展。
<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,因此在此简单方案起作用之前使用通配符没有多大意义。