如何将NuGet包输出目录修改为lib\net462\plugins\dll?
最简实现NuGet包内文件自定义输出路径的方法
由于项目属性界面没有直接配置包内文件路径的选项,最简的方式是直接修改项目的.csproj文件,通过XML配置指定文件在NuGet包中的位置:
打开项目文件
- 右键你的类库项目,选择「编辑项目文件」(或者直接用文本编辑器打开
.csproj文件)
- 右键你的类库项目,选择「编辑项目文件」(或者直接用文本编辑器打开
添加自定义路径配置
根据你的需求,有两种常用配置方式:方式一:统一设置所有输出文件的路径
在
<PropertyGroup>节点中添加DefaultPackagePath属性,覆盖默认的lib\net462路径:<PropertyGroup> <!-- 确保自动打包开关已开启(之前项目属性里设置过的话应该已经存在) --> <GeneratePackageOnBuild>true</GeneratePackageOnBuild> <TargetFramework>net462</TargetFramework> <!-- 指定包内文件的目标路径 --> <DefaultPackagePath>lib\net462\plugins\dll</DefaultPackagePath> </PropertyGroup>方式二:单独指定特定文件的路径
如果只想调整部分文件的路径,在
<ItemGroup>中为目标文件添加Pack="true"和PackagePath属性:<ItemGroup> <!-- 配置主程序集的包内路径 --> <None Include="$(OutputPath)\YourAssemblyName.dll" Pack="true" PackagePath="lib\net462\plugins\dll" /> <!-- 可选:同步配置pdb调试文件和xml文档 --> <None Include="$(OutputPath)\YourAssemblyName.pdb" Pack="true" PackagePath="lib\net462\plugins\dll" /> <None Include="$(OutputPath)\YourAssemblyName.xml" Pack="true" PackagePath="lib\net462\plugins\dll" /> </ItemGroup>注意替换
YourAssemblyName为你的项目实际生成的程序集名称。验证效果
重新用Release配置构建项目,生成NuGet包后,用NuGet包资源管理器打开,就能看到文件已经放到lib\net462\plugins\dll路径下了。
内容的提问来源于stack exchange,提问作者glosrob
相关产品推荐
相关产品推荐

