无法解析对Windows运行时类型的依赖'Windows.Foundation.Metadata.PlatformAttribute

时间:2018-07-13 18:46:31

标签: c# msbuild windows-10 teamcity windows-server-2012

请注意,我们正在构建一个可在Windows 10上运行的应用程序,但是当我们检入代码时,却遇到了这些构建错误

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.WinFx.targets(268, 9): error MC1000: Unknown build error, 'Cannot resolve dependency to Windows Runtime type 'Windows.Foundation.Metadata.PlatformAttribute'. When using the ReflectionOnly APIs, dependent Windows Runtime assemblies must be resolved on demand through the ReflectionOnlyNamespaceResolve event.'  

Windows Server 2012 R2 version 6.3上似乎缺少这些项目  由于这些是我们的构建服务器,但是该应用程序针对Windows 10,因此必须缺少一些其他更深入的COM模块:

C:\WINDOWS\System32\WinMetadata\Windows.Foundation.winmd 
C:\WINDOWS\System32\WinMetadata\Windows.Devices.winmd 

有人有什么建议吗? TIA

更新:

请注意,我已经花了很多时间来研究和解决问题。这是我找到的一些链接,但没有找到解决方法:

Unknown build error Cannot resolve dependency to System.Windows

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/b6209e45-642f-4542-a66e-f304cf8baaf2/regasm-quotcannot-resolve-dependency-to-windows-runtime-type-for-net-dll?forum=visualstudiogeneral

Reflecting a WinRT executable from a .Net 4.x App

https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/how-to-load-assemblies-into-the-reflection-only-context

1 个答案:

答案 0 :(得分:0)

我们没有深入研究并尝试查找COM差异,而是创建了Windows 10构建服务器。

更新:

另一种选择是将构建服务器从Windows 2012升级到2016。