首页 > 其他分享 >Csproj 编译输出引用Nuget包内的资源文件

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

时间:2023-09-26 20:22:06浏览次数:44  
标签:Web 文件 包内 Csproj WebView2 Nuget Microsoft 资源

组内有个组件,对外部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原生组件处理的好,它只有一份资源文件:

标签:Web,文件,包内,Csproj,WebView2,Nuget,Microsoft,资源
From: https://www.cnblogs.com/kybs0/p/17731063.html

相关文章

  • C# NUGET包自动复制依赖项
    在csproj中配置如下内容:<TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>以及这个:<TargetName="CopyProjectReferencesToPackage"DependsOnTargets="......
  • 如何将项目打包上传到NuGet服务器?
    作者:西瓜程序猿主页传送门:https://www.cnblogs.com/kimiliucn前言在我写[在.NETFramework中使用RocketMQ(阿里云版)]这篇博客的时候,因为封装了很多代码在单独的DLL中,包括生产者、消费者以及官方SDK等等,然后都在博客中体现出来导致博客大量代码,然后有位读者就建议打包成NuG......
  • NuGet常用基本配置和命令
    基本配置文件<ProjectSdk="Microsoft.NET.Sdk"> <PropertyGroup> <!--项目支持的框架版本--> <TargetFrameworks> net35; net40; net45; net451; net452; net46; net461; net462; net47; net471; net472; net......
  • Visual Studio 修改NuGet 包路径
    目的:通过NuGet安装包时,NuGet先将包下载至一个统一的目录,默认路径是:C:\Users\{用户名}\.nuget\packages。现在需要将其迁移到目录E:\nuget\packages步骤1、在C:\ProgramFiles(x86)\NuGet\Config目录中找到Microsoft.VisualStudio.Offline.config。在文件末尾添加......
  • tfs 迁入解决方案缺少项目文件[*.csproj]
    .csproj、.vssscc没办法签入TFS怎么办?试图将VisualStudio文件上传到TeamFoundationServer中,但是签入了解决方案文件,项目文件一个都没签入,没办法,就右键,手工将文件添加到源代码管理器。但是.csproj、.vssscc并没有在VisualStudio的解决方案资源管理器中出现,怎么将......
  • 如何修改NuGet默认全局包文件夹的位置?
    由于一些历史原因,重装系统成为Windows用户解决疑难杂症的祖传手艺。受此影响,给硬盘分区几乎成为了一种执念,少则C、D两个盘,夸张一点的5~6个盘的也不是没有。PS:macOS和Linux一直都不鼓励给磁盘分区,虽然不禁止但也不提倡。随着云技术和宽带的提升,越来越多的人更喜欢把自己认为比较......
  • NuGet微软官方中国国内镜像
    为解决国内访问NuGet服务器速度不稳定的问题 ,这里推荐使用NuGet微软官方中国国内镜像地址:https://nuget.cdn.azure.cn/v3/index.json添加NuGet源的方式菜单:工具-> NuGet包管理器-> 程序包管理器设置......
  • Visual Studio 修改NuGet 包路径
    目的:通过NuGet安装包时,NuGet先将包下载至一个统一的目录,默认路径是:C:\Users\{用户名}\.nuget\packages。现在需要将其迁移到目录E:\nuget\packages步骤1、在C:\ProgramFiles(x86)\NuGet\Config目录中找到Microsoft.VisualStudio.Offline.config。在文件末尾添加一......
  • docker 安装 bage私有nuget服务器并上传nuget包
    下载镜像dockerpullloicsharma/baget创建映射文件夹mkdir/data\mkdir/data/app\mkdir/data/app/bagetmkdir/data/app/baget/baget-data 写入配置文件baget.envecho"#以下配置是用于发布包的API密钥,您应该将其更改ApiKey的值以保护服务器。ApiKey=Nuge......
  • .net Nuget包管理
     两种包管理模式,一种是packages.config一种是PackageReference  packages.config程序包管理文件只存在于.NETFramework的项目中,比如下图,我创建了一个.NETFramework的项目: 在添加了NuGet程序包Newtonsoft.Json之后,会自动创建packages.config这个NuGet程序包 但在.NET......