猿问

C# UWP 构建失败/Windows.Foundation.FoundationContract

我将一个 UWP 应用程序更新为更新的 SDK,并将目标版本设置为 16299,将最小版本设置为 15063。


然后我使用 Windows.Foundation.UniversalApiContract 命名空间来使用新 SDK 的功能(如果可用)。示例:


xmlns:contract5NotPresent="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractNotPresent(Windows.Foundation.UniversalApiContract,5)"

xmlns:contract5Present="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract,5)"


<contract5Present:NavigationView x:Name="NavView" ...

构建失败,未显示任何错误消息。但是当我将构建日志设置为详细时,它似乎找不到程序集:


Could not resolve this reference. Could not locate the assembly "Windows.Foundation.FoundationContract, Version=255.255.255.255, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

文件夹和文件存在于 C:\Program Files (x86)\Windows Kits\10\References**10.0.16299.0**\Windows.Foundation.FoundationContract\3.0.0.0 AND C:\Program Files (x86)\Windows Kits \10\References**10.0.15063.0**\Windows.Foundation.FoundationContract\3.0.0.0


更新 1:这似乎与我的资源词典和亚克力画笔有关。如果我将资源字典复制到空白应用程序,则会发生相同的错误。如果我从资源字典中删除合同内容和所有丙烯酸刷子,则构建成功。那么我在这里错过了什么?

如果我从字典中删除第一行(粗细),则构建成功。我的系统在2018年4 月更新上运行,但我在另一台安装了Fall Creators Update 的机器上遇到了同样的问题。


解决方案:我已将 ThemeResources 和 Styles 拆分为两个单独的 ResourceDictionaries,现在在我的主项目中构建成功。但我不明白为什么会发生这种情况以及为什么没有出现确切的错误消息。我花了大约 8 个小时(我的项目有 >70000 行代码)来找到问题,对此我有点生气:)


素胚勾勒不出你
浏览 716回答 1
1回答

白板的微信

您的16299和15063 SDK文件好像有问题,您可以尝试打开文件资源管理器,到对应的文件位置查看SDK是否存在。路径应该是:&nbsp;C:\Program Files (x86)\Windows Kits\10\References\10.0.15063.0(10.0.16299.0)\Windows.Foundation.FoundationContract\3.0.0.0\否则,您可以尝试从Windows SDK and emulator archive再次下载并安装 SDK 版本。如果仍然无法解决,请尝试将Microsoft.NETCore.UniversalWindowsPlatform&nbsp;Nuget更新到最新版本,然后重新启动您的 VS,再次清理并重建您的应用程序。顺便说一句,还请提供您的设备操作系统版本和操作系统版本,以帮助我调查此问题。---更新---另一种解决方法是您可以在标记对之后声明 ResourceDictionary 的内容<ResourceDictionary.ThemeDictionaries></ResourceDictionary.ThemeDictionaries>。这将防止触发崩溃。
随时随地看视频慕课网APP
我要回答