【发布时间】:2019-10-22 05:50:06
【问题描述】:
我想将一些 PNG 图像文件包含到程序集 (.dll) 中,以便在 WPF 应用程序中使用。我们之前的目标是 .NET Framework 4.8,它运行良好,但自从将项目迁移到 .NET Standard 2.1 后,资源被忽略了。
使用 .NET Framework 4.8 确实可以根据需要存储资源,这意味着有一个 [AssemblyName].g.resources 条目,其中包含一个类似目录的结构,其中包含图像。切换到“netstandard2.1”作为目标平台时,资源不包括在内。
.csproj 文件如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<OutputPath>bin\$(Configuration)\</OutputPath>
<ApplicationIcon />
<Win32Resource />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugType>full</DebugType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\AssemblyInfo.App.cs" Link="Properties\AssemblyInfo.App.cs" />
</ItemGroup>
<ItemGroup>
<Resource Include="**\*.png" />
</ItemGroup>
</Project>
预期结果是将资源层次结构编译到库文件中,以便可以直接从 .xaml 访问图像。我们使用 .NET Framework 作为目标平台成功地做到了这一点,但它不适用于 .NET Standard 2.1 或 .NET Core 3.0。
【问题讨论】:
标签: c# .net-core resources .net-standard