【问题标题】:.NET Core - Image resources not included / compiled in library.NET Core - 库中未包含/编译的图像资源
【发布时间】: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


    【解决方案1】:

    要修复它,您只需要更改

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

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

    在您的项目文件中。

    Here 是此问题的详细信息和根本原因。

    【讨论】:

      猜你喜欢
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      相关资源
      最近更新 更多