.net-core - Nuget PackageReference 的资产
问题描述
我在一个项目中有这个包:
<PackageReference Include="Microsoft.CodeAnalysis" Version="2.8.2" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="1.1.0" />
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="2.8.2" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="2.8.2" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="2.8.2" />
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic" Version="2.8.2" />
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces" Version="2.8.2" />
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="2.8.2" />
我将此 .csproj 文件移动到 2017 格式,然后,当我构建解决方案时,出现错误:
错误 CS0104:“Project”是“Microsoft.CodeAnalysis.Project”和“Some.Namespace.Project”之间的模糊引用
当然,这个错误是因为上面描述的包之一移动到父公共项目并与同名的类冲突。
我的问题是我应该设置哪些资产(IncludeAssets
, ExcludeAssets
, PrivateAssets
),具有什么值以及在哪个包中?
目前,.csproj 文件如下所示:
<PackageReference Include="Microsoft.CodeAnalysis" Version="2.8.2">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="1.1.0">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="2.8.2">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="2.8.2">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="2.8.2">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic" Version="2.8.2">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces" Version="2.8.2">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="2.8.2">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
但我认为这不是最好和精确的选择。
解决方案
最好的办法是创建一个全新的空白项目。参考 2.8.2 版本,然后将 csproj 文件中的内容与您的实际解决方案进行比较。删除真实解决方案中不在虚拟文件中的任何引用。命名空间很可能已经改变,但至少一旦你得到正确的引用,命名空间就不应该那么困难了。
推荐阅读
- c# - 从类外部永久设置类'bool
- python - PySide6 和 MatPlotLib 集成
- python - 为什么在pyrender中进行2D投影时颜色会消失?
- python-3.x - 无法在 Flask 应用程序中启动 Celery
- python - 从 LinkedIn 上抓取职位描述
- ios - 隐藏在 StackView 中时,TextView 占位符被切断
- reactjs - ReferenceInput 未填充 react-admin 中编辑表单中的下拉列表
- dynamics-crm - 通过 SQL SSMS 查询 CRM SavedQuery
- c++ - 文件映射,如何从特定位置打开文件(txt)
- javascript - 使用 swal 在 ajax 之后重新加载页面