我目前正在将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/