我想创建一个NuGet包,将DLL复制到输出目录的子目录中。
这是我包裹的文件夹结构:
应将DLL复制到输出文件夹中的相应子目录,如下所示:
我尝试了nuspec文件中的files属性:
<files>
<file src="lib\net48\amd64\*.dll" target="amd64\" />
<file src="lib\net48\x86\*.dll" target="x86\" />
</files>
构建程序包时,我使用的每个DLL都会出现以下警告:
警告:NU5100:程序集“ amd64 \ First.dll”不在内部 'lib'文件夹,因此当 软件包已安装到项目中。如果需要,将其移至“ lib”文件夹 它需要被引用。
还原所有软件包后,既不会创建子文件夹,也不会将DLL复制到输出文件夹中。
如何配置nuspec文件,以便将DLL复制到子文件夹中?我需要install.ps1脚本吗?
答案 0 :(得分:0)
我正在使用 .NET Core(和.NET 5)项目。并将一个组件与多个项目DLL打包在一起。可以通过修改对象文件来做到这一点。
因此,如果您也有.NET Core项目,请将以下部分添加到.csproj
文件中(应包装的项目中)以打包DLL,根据需要更改DLL名称和路径。 。
<ItemGroup>
<_PackageFiles Include="$(OutputPath)\First.dll">
<BuildAction>None</BuildAction>
<PackagePath>x64</PackagePath>
</_PackageFiles>
<_PackageFiles Include="$(OutputPath)\First.dll">
<BuildAction>None</BuildAction>
<PackagePath>x86</PackagePath>
</_PackageFiles>
</ItemGroup>