c# - 如何将 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 在回答中所建议的那样,我遇到了构建错误。但是,从一开始就有两个编译器警告。分享一下,如果可以提供任何线索,
警告 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
警告 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
解决方案
您需要将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>
推荐阅读
- vb.net - 调整窗口大小和窗口窗体
- kubernetes - 具有容器原生负载平衡的 GKE Ingress 未检测到运行状况检查(字段“resource.httpHealthCheck”的值无效)
- angular - 常规变更日志自定义模板 - 如果未指定关闭,则不返回行
- amazon-web-services - 编排中的线程与容器
- html - 输入的文本值通过角度 2 中的 ngFor 循环在动态生成的文本框中复制
- microsoft-teams - 一周前的 MS Teams 调用操作按钮导致无效的 teamId 和/或 appId 指定消息
- c - 递归函数中的分段错误
- reactjs - 在 Firefox 上使用 amazon-chime-web-sdk 进行视频通话减慢 mac-book
- php - 为什么 fsockopen:无法在 smtp.gmail.com 上启用加密
- ios - 检测是否在 iOS 上播放媒体(视频或音频)