Mal*_*chi 7 c# c++-cli .net-core
使用 NuGet 中的程序集时,我几乎肯定会遇到此警告。
我们的代码库是关键任务。这些警告是否会对我们的代码稳定性和性能构成威胁?如果是这样,我该如何修复警告条件,使不稳定不再成为问题?
警告显示如下:
>c:\projects\ucpro\application\ucpront\logging.h(33): warning C4691: 'System::Exception': type referenced was expected in unreferenced assembly 'System.Runtime', type defined in current translation unit used instead
>c:\projects\ucpro\application\ucpront\logging.h(33): note: This diagnostic occurred while importing type 'Microsoft::Extensions::Logging::ILogger ' from assembly 'Microsoft.Extensions.Logging.Abstractions, Version=1.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
>c:\projects\ucpro\application\ucpront\logging.h(33): warning C4691: 'System::Func': type referenced was expected in unreferenced assembly 'System.Runtime', type defined in current translation unit used instead
>c:\projects\ucpro\application\ucpront\logging.h(33): note: This diagnostic occurred while importing type 'Microsoft::Extensions::Logging::ILogger ' from assembly 'Microsoft.Extensions.Logging.Abstractions, Version=1.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
Run Code Online (Sandbox Code Playgroud)
一个简单的例子是尝试使用 Microsoft.Extensions.Logger 时。可以轻松地通过此项目重现该问题
似乎是必要的,我通过一个本身也面向 .NET 4.6 的 shim 库来提取 NuGet,然后直接指向 net46 文件夹以提取 Microsoft.Extensions.*.dll 。
这些警告看起来像是从 netstandard 到 .NET Framework 的程序集重定向的工件
在与微软发生事件之后,这是半规范的答案。半规范因为
答案:在项目引用的程序集是mscorlib但实际上引用类正在程序集System.Runtime中查找引用的类的情况下,可以安全地忽略这些警告,因为System.Runtime(很大程度上)是 netstandard,就像mscorlib是 netstandard 一样。 .NET框架。
我自己的观察 - 并不是专门来自我的事件收集:在更正常的(非 C++/CLI)条件下,编译器可能会使用 shim 库来消除此错误,并且显然也会执行少量的适配器模式操作
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |