![](/img/trans.png)
[英]Why am I getting a warning to include pch.h even though it's already included?
[英]Why am I getting warning NU1507 with Central Package Management even with Package Source Mapping set?
我正在 NuGet 中試用新的Central Package 管理功能。
如文檔中所述,如果您使用多個 NuGet 源(我使用的),現在需要在nuget.config
文件中配置 Package 源映射,否則您應該收到NU1507
警告。
我的簡化文件樹是這樣的:
MySolution.sln
Proj1.csproj
MyLibrary\
(這是一個包含我所有共享項目的外部存儲庫)
Directory.Packages.props
nuget.config
Proj2\
(示例庫項目)
Proj2.csproj
這是Proj1.csproj
的內容:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<PropertyGroup>
<DefaultItemExcludes>$(DefaultItemExcludes);MyLibrary\**\*</DefaultItemExcludes>
</PropertyGroup>
</Project>
這是Directory.Packages.props
:
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="JetBrains.Annotations" Version="2022.1.0" />
</ItemGroup>
</Project>
這是nuget.config
:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear/>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json"/>
<add key="Custom NuGet" value="https://nuget.mydomain.net/"/>
</packageSources>
<packageSourceMapping>
<packageSource key="nuget.org">
<package pattern="*"/>
</packageSource>
<packageSource key="Custom NuGet">
<package pattern="MyNamespace.*"/>
</packageSource>
</packageSourceMapping>
</configuration>
和Proj2.csproj
:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>
在官方文檔中,恢復包時應使用MyLibrary\nuget.config
,因為它位於Proj2.csproj
的父目錄中,實際上當我通過do.net build
構建解決方案時它有效,但當我構建它時Visual Studio 我仍然收到NU1507
警告。
我知道我可以通過將nuget.config
文件復制到與解決方案文件相同的目錄中來解決這個問題(警告消失),但我有數百個項目包含MyLibrary
目錄,我想保留所有配置集中。
此外,它在從命令行構建時按預期工作,那么我做錯了什么?
從您的配置文件來看,一切似乎都是正確的。但是 MS 文檔提到了這個注釋: Central package management is in active development 。 您可以在Nuget/Home提供任何反饋
以下是您可以嘗試檢查的建議:
1 檢查您的 visual studio 版本,此功能適用於 Visual Studio 2022.17.2 及更高版本。因為較舊的工具將忽略中央 package 管理配置和功能。更多信息請參閱文檔: CPM
2 如果您無法加入 Package 源映射但想使用中央 package 管理,可以抑制警告。 請參考文檔:
<PropertyGroup>
<NoWarn>$(NoWarn);NU1507</NoWarn>
</PropertyGroup>
3 使用do.net nuget list source
獲取package source list,查看是否啟用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.