【发布时间】:2020-11-03 11:18:58
【问题描述】:
我正在开发 WPF 应用程序,我想添加 XAML Islands 以便能够在我的应用程序中使用 Windows 10 控件。
在 this 教程之后,我通过 Nuget 包管理器添加了 Microsoft.Toolkit.Wpf.UI.XamlHost 项目。它还安装了它的依赖项,比如Microsoft.Windows.SDK.Contracts (10.0.18362.2005),它依赖于System.Runtime.WindowsRuntime >= 4.6.0。运行项目时出现如下编译错误:
Multiple assemblies with equivalent identity have been imported:
'C:\Users\*[path to my project]*\packages\System.Runtime.WindowsRuntime.4.6.0\ref\netstandard2.0\System.Runtime.WindowsRuntime.dll'
and
'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll'.
Remove one of the duplicate references.
清除错误消息,XamlHost 安装了它的依赖项(它修改了 app.config 和 packages.config 文件 - 确切的行在下面发布)并且我还在 MyProject.csproj 文件中默认添加了一个 WindowsRuntime.dll 如下方式:
<Reference Include="System.Runtime.WindowsRuntime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll</HintPath>
</Reference>
所以我留下了当前与 XamlHost 一起安装的依赖项,并删除了默认的依赖项,即我在上面发布的内容。然后,当我编译它时抛出一个错误弹出窗口:This application has failed to start because the application configuration is incorrect. 我还尝试删除另一个导入,它是在我安装 XamlHost 项目时添加的:
所以,从app.config 中删除以下几行:
<dependentAssembly>
<assemblyIdentity name="System.Runtime.WindowsRuntime" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.6.0.0" newVersion="4.6.0.0" />
</dependentAssembly>
来自packages.config:
<package id="System.Runtime.WindowsRuntime" version="4.6.0" targetFramework="net471" />
但它抛出了相同的弹出窗口,表明项目配置不正确。
还更新到最新的 Visual Studio(我正在使用 vs2019 社区),更新到最新的 windows SDK 和最新的 .NET Framework。
所以,有几个问题:
-
MyProject.csproj文件中的每个引用都是从packages文件夹添加的,除了来自 Program Files(上面的路径)的WindowRuntime,为什么没有从packages文件夹引用? (还尝试将其版本更改为 4.6.0,没有。尝试替换导入路径并将其设置为 packages 文件夹,没有。如果我删除它,甚至不会编译项目)。 - 在
Program Files中的WindowsRuntime.dll路径中,.NetCore\v4.5\是什么,但最新的.NetCore 是3.1?它包含一个WindowsRuntime.dll4.0.0 版本,为什么?
我做错了什么?
【问题讨论】:
-
您可以将minimal reproducible example 与您的
csproj文件共享吗?
标签: c# .net wpf xaml-islands