Csproj 编译输出引用Nuget包内的资源文件

组内有个组件,对外部Nuget包Microsoft.Web.WebView2封装。

因为WebView2对自身有一些资源文件依赖,资源文件需要随编译输出到启动目录,WebView2直接加载启动目录下相应文件。

 如果上层应用同时引用Microsoft.Web.WebView2,自然会输出对应的资源文件。

但应用层很容易遗漏对Microsoft.Web.WebView2的引用依赖,并且强依赖有点耍流氓。

翻山越岭找技术,Nuget官方仓库也有遇到类似的问题:How to copy non assembly files to output directory of application · Issue #8843 · NuGet/Home (github.com)

我总结了下,以内容生成、加个PackageCopyToOutput,就行了。

复制代码
 1   <ItemGroup>
 2       <Content Include="runtimes\win-arm64\native\WebView2Loader.dll">
 3           <PackageCopyToOutput>true</PackageCopyToOutput>
 4       </Content>
 5       <Content Include="runtimes\win-x64\native\WebView2Loader.dll">
 6           <PackageCopyToOutput>true</PackageCopyToOutput>
 7       </Content>
 8       <Content Include="runtimes\win-x86\native\WebView2Loader.dll">
 9           <PackageCopyToOutput>true</PackageCopyToOutput>
10       </Content>
11   </ItemGroup>
复制代码

不过这种实现有点缺陷,有双倍的资源文件:

没有Microsoft.Web.WebView2原生组件处理的好,它只有一份资源文件:

posted @   唐宋元明清2188  阅读(73)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示
剑桥
16:15发布
剑桥
16:15发布
7°
西南风
3级
空气质量
相对湿度
66%
今天
2°/10°
周三
2°/8°
周四
中雨
2°/7°