我有一个.csproj
,其中包含以下内容:
<ItemGroup>
<PackageReference Include="PUBLIC PACKAGE" Version="6.0.0" />
<PackageReference Include="PUBLIC PACKAGE" Version="2.6.1" />
</ItemGroup>
<!-- When building with a certain constant, do not restore these packages because they exist on a server we can't reach on these pc's -->
<ItemGroup Condition="!$(DefineConstants.Contains('BUILD_CONSTANT'))">
<PackageReference Include="PRIVATE PACKAGE" Version="7.*" />
<PackageReference Include="PRIVATE PACKAGE" Version="7.*" />
</ItemGroup>
我们的项目是在本地计算机上开发的,但是我们正在准备将其集成到存在于其他地方的系统中。该系统还包含我们需要的一些nuget软件包。这些软件包无法从我们本地的PC还原,这就是为什么我添加了条件,因此在构建时,不应尝试还原这些软件包以避免错误。
在应用程序的其他部分,我们也避免依赖于这些软件包。当我们的产品完成后,我们将删除这些特殊条件并构建常量,因为这样我们就不再需要在新系统之外运行它们。
dotnet restore
失败,因为它无法还原这些软件包。它未经授权,这很有意义;尽管我希望它可以避免还原这些软件包。
如何让我的dotnet restore
忽略基于CI / CD管道中基于变量的某些程序包引用?我希望传递特殊的构建常量(CUSTOM_DEBUG)
可以工作,但是dotnet restore
并没有与dotnet build
和dotnet test
等类似的配置参数。
运行dotnet build -c CUSTOM_DEBUG
可以的工作,并且不会尝试还原软件包;所以我有一个解决方法。我只是想知道是否有一种方法可以单独使用dotnet restore
和dotnet build
。
我正在使用.NET Core 2.2