C#项目中PackageId引发项目引用警告问题
问题:使用$(SolutionDir)引用Git子模块内项目时,PackageId引发引用警告
在Visual Studio解决方案中,通过$(SolutionDir)引用Git子模块目录下的项目时,被引用项目的.csproj文件里的PackageId属性会导致引用列表出现黄色警告。移除该PackageId配置后,警告就会消失,这个问题在Git子模块场景下可以稳定复现。
复现步骤
- 创建空的Visual Studio解决方案
- 在解决方案根目录下新建
Submodule文件夹,并在解决方案中添加对应的解决方案文件夹 - 在
Submodule文件夹内创建类库项目ProjectA - 在解决方案根目录创建类库项目ProjectB,通过
$(SolutionDir)\Submodule\ProjectA\ProjectA.csproj路径添加对ProjectA的项目引用 - 为ProjectA安装NLog NuGet包(版本5.2.8),此时ProjectB的引用列表中ProjectA会出现黄色警告
- 注释ProjectA.csproj中的
PackageId配置行,警告随即消失
相关项目配置代码
ProjectA.csproj
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <Title>Console Infra</Title> <Version>2.0.491</Version> <Company>Company</Company> <Copyright>Copyright © Company 2020</Copyright> <AssemblyVersion>2.0.491</AssemblyVersion> <Authors>Author</Authors> <Product>Console Infra</Product> <PackageId>Console Infra</PackageId> <!-- 此配置会引发警告 --> </PropertyGroup> <ItemGroup> <PackageReference Include="NLog" Version="5.2.8" /> </ItemGroup> </Project>
ProjectB.csproj
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <Title>Console Module</Title> <Version>2.0.217</Version> <Company>Company</Company> <Copyright>Copyright © Company 2020</Copyright> <AssemblyVersion>2.0.217</AssemblyVersion> <Authors>Sedecal</Authors> <Product>Console Module</Product> <PackageId>Console Module</PackageId> </PropertyGroup> <ItemGroup> <ProjectReference Include="$(SolutionDir)\Submodule\ProjectA\ProjectA.csproj" /> </ItemGroup> </Project>
临时解决办法
移除被引用项目(如上述ProjectA)中的PackageId属性配置,即可消除该黄色警告。
内容的提问来源于stack exchange,提问作者JuanDYB
相关产品推荐
相关产品推荐

