C# 如何在WPF中为XAML孤岛使用正确的WindowsRuntime.dll?
我正在开发一个WPF应用程序,我想添加C# 如何在WPF中为XAML孤岛使用正确的WindowsRuntime.dll?,c#,.net,wpf,xaml-islands,C#,.net,Wpf,Xaml Islands,我正在开发一个WPF应用程序,我想添加XAML Islands,以便能够在我的应用程序中使用windows 10控件。 在教程之后,我通过Nuget Package Manager添加了Microsoft.Toolkit.Wpf.UI.XamlHost项目。它还安装了它的依赖项,如Microsoft.Windows.SDK.Contracts(10.0.18362.2005),它依赖于System.Runtime.WindowsRuntime>=4.6.0。运行项目时,出现以下编译错误: Mul
XAML Islands
,以便能够在我的应用程序中使用windows 10控件。
在教程之后,我通过Nuget Package Manager添加了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>
从packages.config
:
<package id="System.Runtime.WindowsRuntime" version="4.6.0" targetFramework="net471" />
但它抛出了相同的弹出窗口,即项目配置不正确
还更新了最新的Visual studio(我使用的是vs2019社区)、最新的windows SDK和最新的.NET Framework
所以,有几个问题:
MyProject.csproj
文件中的每个引用都是从packages
文件夹中添加的,除了这个WindowRuntime
,它来自程序文件(上面的路径),为什么不从packages
文件夹中引用?(还尝试将其版本更改为4.6.0,无。尝试替换导入路径并将其设置为packages文件夹,无。如果删除它,甚至不会编译项目)程序文件中的WindowsRuntime.dll
路径中,.NetCore\v4.5\
是什么,但是最新的.NetCore是3.1?它包含一个WindowsRuntime.dll
4.0.0版,为什么
packages.config
文件这一事实来看,您的目标似乎是.NET Framework。这是不支持的。您可以与您的csproj
文件共享吗?
<package id="System.Runtime.WindowsRuntime" version="4.6.0" targetFramework="net471" />