c# - 'System.Runtime.InteropServices.SafeHandle'和 'System.Runtime.InteropServices.dll'中都存在 'System.Runtime.Handles.dll'类型

标签 c# dll reference compiler-errors interop

我目前正在将Windows 8.1应用程序移植到Windows 10 UAP应用程序,该应用程序使用互操作在C++和C#之间进行通信,并且 pop 以下错误:

$(ProjectName).Interop.g.cs : error CS0433: The type 'System.Runtime.InteropServices.SafeHandle' exists in both 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5.1\System.Runtime.InteropServices.dll' and 'c:\Program Files (x86)\MSBuild\Microsoft.NetNative\x86\ilc\lib\McgDependencies\System.Runtime.Handles.dll'



从我设法学到的信息中,System.Runtime.Handler只是System.Runtime.InteropServices的一小部分(或者至少包含一小部分)。

这两个dll始终由编译器引用,因此无法删除它们。

我在解决方案中检查了SafeHandle类型,除了在生成的文件$(ProjectName).Interop.g.cs中没有使用过该类型。我检查了解决方案中所有项目的引用,但都没有引用错误中提到的两个dll中的任何一个。

当我分别构建它们时,每个项目都可以正常构建...仅启动项目因此错误而失败。

任何帮助将不胜感激!

非常感谢!

最佳答案

我终于找到了解决我问题的方法。很难找到,但是我做到了!由于我的解决方案非常适合我的项目,因此我将发布解决该问题的步骤。我希望它可以帮助某人!

  • 我卸载了启动项目并创建了一个新的空项目。
  • ,我一个接一个地添加了对空项目所需的引用(从依赖性较小的项目开始),直到出现错误为止,这给了我一个有问题的项目。
  • 我尝试一次删除该项目的一些引用,直到解决方案编译为止!

  • 我发现Windows 8的FlurrySDK在Windows 10中引起了问题,因此我将其禁用,直到他们发布Windows 10版本!

    希望这对某人有帮助!

    关于c# - 'System.Runtime.InteropServices.SafeHandle'和 'System.Runtime.InteropServices.dll'中都存在 'System.Runtime.Handles.dll'类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30125905/

    相关文章:

    c# - 如何删除文件夹及其内容,而不将它们放入回收站?

    c# - 使用 C# 处理 xml 文件的最简单方法是什么?

    c# - C# Web 服务可以调用其他 DLL 代码吗?

    c# - Visual Studio 引用

    c# - 在 C# 中返回对 double 的引用?

    c++0x标准库引用手册

    c# - 为 Windows 编写的桌面应用程序可以在 Linux 上运行吗?

    c# - 是否可以从 wwwroot 文件夹外部提供静态文件?

    c++ - 应用程序无法从 WinSxS 加载 Win32 程序集

    windows - 无法在 Windows 32 位上加载 SWT 库