首页 > 解决方案 > 如何将 UWP 类库链接到 WPF 应用程序?

问题描述

如何将 UWP 类库链接到 WPF 应用程序?

我创建了一个带有单个测试类的 UWP 类库。我有一个想要使用该类库的 WPF .NET 应用程序。我需要遵循哪些步骤?

按照本教程,我想MyLib在我的应用程序中添加库MyApp。但我发现以下编译器错误,

严重性代码 描述 项目文件行抑制状态错误 NU1201 项目 MyLib 与 netcoreapp3.1 (.NETCoreApp,Version=v3.1) 不兼容。MyLib 项目支持:uap10.0.19041 (UAP,Version=v10.0.19041) MyApp C:\Users....\MyApp.csproj

##更新

添加以下代码后,

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0-windows</TargetFramework>
    <AssetTargetFallback>uap10.0.19041</AssetTargetFallback>
    <UseWPF>true</UseWPF>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="..\MyLib\MyLib.csproj" />
  </ItemGroup>

</Project>

正如 TamBui 在回答中所建议的那样,我遇到了构建错误。但是,从一开始就有两个编译器警告。分享一下,如果可以提供任何线索,

  1. 警告 NETSDK1137 不再需要使用 Microsoft.NET.Sdk.WindowsDesktop SDK。考虑将根 Project 元素的 Sdk 属性更改为“Microsoft.NET.Sdk”。MyApp C:\Program Files\dotnet\sdk\5.0.103\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.DefaultItems.targets 376

  2. 警告 MSB3270 正在构建的项目的处理器架构“MSIL”与参考“C:\Users...\MyLib\bin\x64\Debug\MyLib.dll”、“AMD64”的处理器架构不匹配. 这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改项目的目标处理器体系结构,以便在项目和参考之间对齐处理器体系结构,或者依赖具有与项目的目标处理器体系结构匹配的处理器体系结构的参考。MyApp C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 2123

标签: c#.netwpfwindowsuwp

解决方案


您需要将AssetTargetFallback与您的 UWP 项目的目标版本匹配的文件添加到您的 WPF 项目的PropertyGroup. 在解决方案资源管理器中选择您的 WPF 项目,您将能够编辑该项目的属性。

<PropertyGroup>
  <OutputType>WinExe</OutputType>
  <TargetFramework>netcoreapp3.1</TargetFramework>
  <RootNamespace>_68824006</RootNamespace>
  <AssetTargetFallback>uap10.0.19041</AssetTargetFallback>
  <UseWPF>true</UseWPF>
</PropertyGroup>

推荐阅读