【问题标题】:XamlCompiler error WMC1006: Cannot resolve Assembly or Windows Metadata file 'Microsoft.Win32.Registry.dll'XamlCompiler 错误 WMC1006:无法解析程序集或 Windows 元数据文件“Microsoft.Win32.Registry.dll”
【发布时间】:2020-02-19 17:09:47
【问题描述】:

我使用 Windows SDK 10.1.16299.15 将我的 UWP 项目升级到 Fall Creator Update。

当我编译或创建商店包时,我得到:

C:\Users...\Visual Studio 2017\Projects\FileRenamer\Get.the.solution.FileRenamer.App\Get.the.solution.FileRenamer.App.csproj:XamlCompiler 错误 WMC1006:无法解析程序集或 Windows元数据文件“Microsoft.Win32.Registry.dll” 3>C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\XamlCompiler\Microsoft.Windows.UI.Xaml.Common.targets(263,5): Xaml Internal Error error WMC9999: Type Universe cannot解析程序集:Microsoft.Win32.Registry,Version=0.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a。

我从未引用过 Microsoft.Win32.Registry.dll,所以我认为这是 Windows SDK 错误?

我在哪里可以报告此类错误以及如何修复它?

PS:我的 Windows 机器获得了 Fall Creators 更新,Visual Studio 也是最新的。

【问题讨论】:

    标签: winapi uwp


    【解决方案1】:

    我之前遇到过同样的问题,只是通过从解决方案文件夹中删除 .vs 文件夹来解决它。

    请注意,此文件夹默认隐藏,因此您需要启用在文件资源管理器中显示隐藏项目。

    更新

    这是 Visual Studio 团队在下一个 SDK 中出现适当修复之前提供的解决方法。

    Windows 团队调查了这个问题,并且我们怀疑这是我们已经计划在下一个版本中解决的 SDK 的一个已知问题(我们无法将此问题纳入 Fall Creators Update SDK)。不幸的是,目前,您需要确保在同一解决方案中打开的所有项目的 TargetPlatformMinVersion 相同。

    【讨论】:

    • 另外,我从每个项目中删除了bin 和obj 文件夹,并在nuget 中更新为最新的UniversalWindowsPlatform。我不是 100% 肯定,但他们可能也有帮助......
    • 要更改您的TargetPlatformMinVersion,请转到您的项目属性,应该有一个包含所有可用版本的下拉列表。
    • 删除.vs文件夹对我不起作用,我删除bin和obj做到了。
    【解决方案2】:

    这个让我有点吃惊。我能够在 Visual Studio 2017 中构建良好,但在命令行中它失败了。显然这与我使用的nuget.exe cli 有关。它是自动检测 VS2019,出于某种原因,它以某种方式使构建中包含的 2 个必要包无效,然后触发了这个特定问题的编译器错误。

    我通过 nuget cli 的选项指定 MSBuild 版本来修复它。

    所以不是,

    call nuget restore %Solution% -Recursive

    我现在知道了,

    call nuget restore %Solution% -Recursive -MsBuildVersion 15.9

    【讨论】:

    • 我必须在哪里执行这个?
    • CMD.exe 或者如果您更喜欢 PowerShell,只需从这些命令中删除 call 。
    【解决方案3】:

    VS2017 版本中存在一个已知问题。 15.6 与 NuGet 如何使用 FallBackFolders 还原包相关。您可以通过使用以下命令运行还原来解决此问题:

    msbuild.exe /t:Restore /p:RestoreAdditionalProjectFallbackFolders=""
    

    您也可以在您的解决方案路径或特定项目中运行上述命令(请参阅以下命令模板),或者如果您使用此类文件构建解决方案(例如在构建服务器):

    msbuild.exe /t:Restore /p:RestoreAdditionalProjectFallbackFolders="" "[Your Project|Solution Path]\[Your Project|Solution Name].csproj|sln"
    

    有关更多信息,请查看以下线索: MS Developer Community

    【讨论】:

      【解决方案4】:
      msbuild -Restore
      

      可能有帮助

      根据我的github操作enter link description here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-29
        • 2016-07-05
        • 2018-12-26
        • 2018-04-20
        • 1970-01-01
        • 2015-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多