`Microsoft.ui.xaml.dll` 无法加载

Posted

技术标签:

【中文标题】`Microsoft.ui.xaml.dll` 无法加载【英文标题】:`Microsoft.ui.xaml.dll` is unable to load 【发布时间】:2022-01-03 02:48:41 【问题描述】:

我的 WinUI3 应用程序出现异常,Microsoft.ui.xaml.dll 无法加载。我在 nuget 中包含了 Microsoft.UI.Xaml 和 Microsoft.Graphics.Win2D。

System.DllNotFoundException
  HResult=0x80131524
  Message=Unable to load DLL 'Microsoft.ui.xaml.dll' or one of its dependencies: The specified module could not be found. (0x8007007E)
  Source=TibraUI
  StackTrace:
   at TibraUI.Program.XamlCheckProcessRequirements()
   at TibraUI.Program.Main(String[] args) in C:\Users\Bryan\src\tibra\Tibra\TibraUI\obj\x64\Debug\net6.0-windows10.0.19041.0\win10-x64\App.g.i.cs:line 28

Windows 版本 21H1 构建 19043.1348

我的 App.xaml

<Application
    x:Class="TibraUI.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:TibraUI">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
                <!-- Other merged dictionaries here -->
            </ResourceDictionary.MergedDictionaries>
            <!-- Other app resources here -->
        </ResourceDictionary>
    </Application.Resources>
</Application>

【问题讨论】:

github.com/microsoft/WindowsAppSDK/issues/1762 FWIW 我看到了同样的错误,Hans 提供的链接指的是一个现已关闭的线程,它不提供解决方案 - 建议的 VC redist 安装对我不起作用。 一个似乎对我有用的解决方案是选择具有两个项目的模板,即具有单独打包程序项目 (WAP) 的一个。只要您将打包程序项目选为启动项目,它似乎就可以工作。将“真实”项目设置为启动会导致相同的错误。请注意,您必须将机器设置为开发人员模式。 @Rno 不幸的是,这对我不起作用 @BAR 很遗憾听到这个消息。我对此完全陌生,所以几乎没有什么可以为您提供的。我创建了一个新的工作样板 WinUI3 项目并将其放在 GitHub 上,也许浏览该代码或克隆它可能会给您一些见解。 github.com/arnovb-github/EmptyWinUI 【参考方案1】:

将包作为启动项目运行。它不直观,但主要项目并不意味着运行。

此答案仅适用于创建包含包项目的项目的人。

【讨论】:

我该怎么做? 我只有一个项目【参考方案2】:

我能够通过以下方式解决问题:

我在命令提示符下使用 dotnet new unoapp-winui-net6 创建了一个 Uno WinUI 3 .NET 6 项目。我必须从以下位置更新 Windows.Desktop.csproj 参考:

<ItemGroup> 
    <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" RuntimeFrameworkVersion="10.0.18362.16" /> 
    <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" TargetingPackVersion="10.0.18362.16" /> 
</ItemGroup> 

到:

<ItemGroup>
    <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" RuntimeFrameworkVersion="10.0.19041.22" />
    <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" TargetingPackVersion="10.0.19041.22" />
</ItemGroup>

在 Windows.Package.wapproj 中,我更新了

<ItemGroup>
    <PackageReference Include="Microsoft.WindowsAppSDK" Version="[1.0.0-experimental1]">
        <IncludeAssets>build</IncludeAssets>
    </PackageReference>
</ItemGroup>

<ItemGroup>
    <PackageReference Include="Microsoft.WindowsAppSDK" Version="[1.0.0]">
        <IncludeAssets>build</IncludeAssets>
    </PackageReference>
</ItemGroup>

(另见https://github.com/unoplatform/uno/discussions/7617)

在 Visual Studio 2022 Preview 1.1 的配置管理器中,我不得不将 Windows.Desktop 的平台更改为 x64(以前是 x86)。 Windows.package 也应该是 x64。

我将 Windows.Package 项目设置为启动项目。我可以构建并启动应用程序而不会出现错误。

【讨论】:

以上是关于`Microsoft.ui.xaml.dll` 无法加载的主要内容,如果未能解决你的问题,请参考以下文章

ValueError 层序贯_13的输入0与层不兼容:预期ndim = 3,发现ndim = 4收到完整形状:(无,无,无,无)

如何修复'ValueError:输入0与层simple_rnn_1不兼容:预期形状=(无,无,20),找到形状=(无,无,2,20)'

树莓派3B 无显示器,无键盘,无Linux系统,无网线 配置WIFI连接

HTTP协议的 “无连接,无状态”

Visual Studio 2012 中的普通 C# 编辑器(无智能感知、无缩进、无代码突出显示)

sim卡无服务是怎么回事 手机卡突然变成无服务是怎么回事?