我当前正在将Windows 8.1应用程序移植到Windows 10 UAP应用程序,该应用程序使用Interop在C 和C#之间进行通信,并且我正在弹出以下错误:
$(projectName).interop.g.cs:错误CS0433:类型 'system.runtime.interopservices.safehandle'都存在于两个c: program中 文件(x86)参考 汇编 microsoft framework.netcore v4.5.1 system.runtime.interopservices.dll' 和'c: program文件 (x86) msbuild microsoft.netnative x86 ilc lib mcgdependencies system.runtime.handles.dll'
从我设法了解的内容来看,System.Runtime.Handler
是System.Runtime.InteropServices
的一小部分(或至少包含其中的一小部分)。
编译器总是引用这两个DLL,因此无法完成它们。
我在解决方案中检查了SafeHandle类型,除了生成的文件$(ProjectName).introp.g.cs以外,它没有在任何地方使用。我检查了解决方案中所有项目的参考,没有一个引用错误中提到的两个DLL中的任何一个。
当我单独构建它们时,每个项目都可以构建良好...只有此错误就会失败。
任何帮助将不胜感激!
非常感谢!
我终于找到了解决问题的解决方案。找到并不容易,但我做到了!由于我的解决方案非常特定于我的项目,因此我将发布用于解决该项目的步骤。我希望它可以帮助某人!
- 我卸载了我的启动项目并创建了一个新的空项目。
- 一一添加了一个空项目所需的参考(从一个依赖性较少的一个开始),直到我获得错误为止,这给了我有问题的项目。
- 我尝试删除该项目的一些参考,一次直到解决方案进行编译!
我发现Windows 8的Flurrysdk在Windows 10中引起了问题,因此我将其禁用,直到他们发布Windows 10版本!
!希望这对某人有帮助!