You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Maui 7类库NuGet包嵌入图片的解决方案

.NET Maui 7类库NuGet包嵌入图片解决方法
  • 修正项目文件的资源配置
    打开类库的.csproj文件,给MauiImage类型的图片加上PrivateAssets="None"和Pack="true"属性,确保资源能被NuGet包包含并对外暴露:

    <ItemGroup>
      <!-- 匹配所有图片文件 -->
      <MauiImage Include="Resources\Images\**" Pack="true" PrivateAssets="None" />
      <!-- 或者单个指定 -->
      <!-- <MauiImage Include="Resources\Images\your-icon.png" Pack="true" PrivateAssets="None" /> -->
    </ItemGroup>
    `PrivateAssets="None"`是关键——默认资源是私有属性,不会被消费项目访问;`Pack="true"`明确告诉MSBuild把这些资源打包进NuGet。
    
    
  • 确认NuGet打包范围
    可以在.csproj的PropertyGroup里添加配置,确保所有必要资产都被包含:

    <PropertyGroup>
      <PackageIncludeAssets>all;$(PackageIncludeAssets)</PackageIncludeAssets>
    </PropertyGroup>
    
  • 修正自定义视图的图片引用路径
    自定义视图里引用图片时,必须带上类库的标识,不能直接用相对路径:

    • XAML中引用:
      <Image Source="你的类库项目名/Resources/Images/your-icon.png" />
      
    • C#代码中引用(更可靠,避免路径问题):
      // 替换成你的类库命名空间和图片路径
      image.Source = ImageSource.FromResource("YourLibraryName.Resources.Images.your-icon.png", typeof(你的自定义视图类).Assembly);
      

    注意代码里的资源路径是命名空间格式:项目名.文件夹层级.文件名,和项目的目录结构对应。

  • 重新打包测试
    执行以下命令清理并打包:

    dotnet clean
    dotnet pack -c Release
    

    把bin/Release下生成的NuGet包安装到测试项目,验证图片是否正常显示。

内容的提问来源于stack exchange,提问作者Thomas Carlton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 04:05:20