在NuGet包中添加UWP(Universal Windows Platform)支持时,需要遵循特定的文件夹结构约定,以确保平台兼容性。以下是关键概念和实现方法:
NuGet使用约定式目录结构识别目标框架(Target Framework Monikers, TFMs)。UWP对应的TFM为:
uap10.0
(Windows 10)uap10.0.16299
(特定版本)在NuGet包的lib
目录下,需创建对应UWP TFM的子文件夹:
lib\uap10.0\ // 基础UWP支持
lib\uap10.0.16299\ // 针对特定SDK版本
MyPackage.nupkg
├── lib
│ ├── netstandard2.0\MyLib.dll // 其他平台
│ └── uap10.0\MyLib.dll // UWP专用实现
├── package.nuspec
└── README.md
问题1:UWP项目无法识别NuGet包
lib\uap10.0\
是否存在且包含有效DLL问题2:运行时异常
Windows.*
命名空间API<TargetFrameworks>uap10.0;netstandard2.0</TargetFrameworks>
多目标编译#if NETSTANDARD2_0
// 通用代码
#elif UAP10_0
// UWP专用代码
#endif
完整示例.csproj
配置:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>uap10.0;netstandard2.0</TargetFrameworks>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'uap10.0'">
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.10" />
</ItemGroup>
</Project>
没有搜到相关的沙龙