c# - .NETStandard 多目标库包在 Netstandard 2.0 项目中出现 CS0234 错误
问题描述
所以我必须将一个项目从 重构.NET Framework
为Net Standard
,Net Standard
版本是2.0
,我的.NET Framework
版本是4.7.2
。我在我的 csproj 中使用多目标,因为我仍然需要一些.NET Framework
不存在的功能.NET Standard
,例如System.Runtime.Remoting
. 我认为多目标可以解决我Net Standard
没有包的问题,但它给了我这个错误:
错误 CS0234 命名空间“System.Runtime”中不存在类型或命名空间名称“Remoting”(您是否缺少程序集引用?) Project.Standard (netstandard2.0)
这是我的 Csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net472</TargetFrameworks>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)'=='net472'">
<Reference Include="System.Runtime.Remoting" />
</ItemGroup>
</Project>
出于某种原因,我的代码无法定位它.NET Framework
何时需要,或者我在我的 Csproj 中遗漏了什么?
解决方案
您的 CSPROJ 文件已正确设置。我将假设有一些源代码引用了程序集。
你需要弄清楚你在源代码中引用它的位置,并将它包含在一个如下所示的指令中:
public class Class1
{
public void TestMe()
{
#if NET472
var test = new System.Runtime.Remoting.Metadata.SoapAttribute();
#endif
}
}
这将确保它仅在为 .NET Framework 4.7.2 而不是 .NET Standard 编译时可见。
推荐阅读
- java - 如何按包含非英文字符的字段按字母顺序对 ArrayList 进行排序?爪哇
- javascript - 未捕获的类型错误:无法读取 null 的属性“nodeName”
- powershell - 为给定的 IP 和 PORT 找到正确的 Internet 协议
- django - 如何检查在 django admin 中是否打开了实例详细信息
- python - TypeError:'dict'对象在python纸牌游戏中不可调用修复
- java - 告诉 Spring 不要对特定类型的 bean 调用关闭
- javascript - 这个 Javascript 符号 { e => e } 表示/可能表示什么?
- java - 我们可以并行处理每个多管道步骤吗?
- java - 如何将 GitHub 库导入到我的 android studio 项目中?
- c - 如何从文本文件中读取,反转每个单词而不是它们的位置,然后将其写入另一个文本文件?