0

我们使用 myget.org 作为 NuGet 服务器,在这里我上传了一个名为 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 脚本中执行此操作。可能吗?

简化示例

构建.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,因此在这个简单的场景起作用之前使用通配符没有多大意义。

4

0 回答 0