概述
项目场景:
项目中有大量引用三方库,不允许直接将库放在源码中。选择创建nuget包来包含所有引用的库。
问题描述
直接引用的库可以释放到输出目录;间接被三方库引用的资源无法释放到输出目录。
原因分析:
nuget脚本有问题;或者打包方式有问题。
解决方案:
使用PackageReference来打包;
修改项目文件csproj,增加如下语句:
<PropertyGroup>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
</PropertyGroup>
添加需要输出的文件到项目中,并设置文件的属性Copy always
编辑项目文件csproj,对于要输出的文件添加如下语句:
<ItemGroup>
<Content Include="dlls**" >
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
执行打包命令:
cd 到project directory
dotnet pack
执行以上命令会生成projectName.1.0.0.nupkg。
使用Nuget Package Explorer打开生成的.nupkg文件。调整需要输出的内容为contentFiles文件夹下的内容即可。
contentFiles文件夹下的内容为最终会输出的内容,在引用的项目中会生成对应文件夹的快捷方式。但是此时这部分内容是快捷方式,还不能完全输出到输出目录。要输出到输出目录,需要对当前的nupkg进行修改。
选中 Edit->Edit Metadata Source
找到对应需要输出的文件,在对应的文件属性里面添加
copyToOutput="true" flatten="false"
save修改,然后File->Save as, 保存为新的nupkg。
上传新的nupkg到服务器上即可。上传命令:
nuget push xxx.1.0.1.nupkg (token-key) -Source https://api.nuget.org/v3/index.json
最后
以上就是拼搏钢笔为你收集整理的解决nuget包中内容无法释放到输出目录的问题项目场景:问题描述原因分析:解决方案:的全部内容,希望文章能够帮你解决解决nuget包中内容无法释放到输出目录的问题项目场景:问题描述原因分析:解决方案:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复