Csproj 编译输出引用Nuget包内的资源文件
  DLSqDvAhdzI6 2023年11月19日 32 0

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

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

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

 如果上层应用同时引用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>

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

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

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

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

作者:唐宋元明清2188



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
DLSqDvAhdzI6