如何基于主要版本安装NuGet软件包

时间:2019-05-02 05:40:53

标签: msbuild continuous-integration nuget packagereference

我们使用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,因此在此简单方案起作用之前使用通配符没有多大意义。

0 个答案:

没有答案
相关问题