Loading

NuGet 打包并包含dll等资源的配置 解决方案

直接帖代码

.csproj

<PropertyGroup>
		<PackageId>ShenTong.EntityFrameworkCore.Oscar</PackageId>
		<PackageVersion>1.0.0-alpha-1.0</PackageVersion>
		<Authors>microestc</Authors>
		<Company>shentong</Company>
		<Description>Oscar database provider for Entity Framework Core.</Description>
		<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
		<TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);LibContentTarget</TargetsForTfmSpecificBuildOutput>
	</PropertyGroup>
<Target Name="LibContentTarget">
		<ItemGroup>
			<TfmSpecificPackageFile Include="lib\System.Data.OscarClient.dll" Condition="'$(TargetFramework)' == 'netstandard2.1'">
				<PackagePath>lib\$(TargetFramework)</PackagePath>
			</TfmSpecificPackageFile>
		</ItemGroup>
	</Target>
<ItemGroup>
		<Reference Include="System.Data.OscarClient">
			<HintPath>lib\System.Data.OscarClient.dll</HintPath>
			<PrivateAssets>all</PrivateAssets>
		</Reference>
	</ItemGroup>

用于创建自定义包的高级扩展点
pack 目标提供了两个扩展点,这些点在内部特定于目标框架的内部版本中运行。 扩展点支持包括特定于目标框架的内容和程序集到包中:
TargetsForTfmSpecificBuildOutput 目标:用于 lib 文件夹内的文件或使用 BuildOutputTargetFolder指定的文件夹。
TargetsForTfmSpecificContentInPackage 目标:用于 BuildOutputTargetFolder以外的文件。
TargetsForTfmSpecificBuildOutput
编写一个自定义目标并将其指定为 $(TargetsForTfmSpecificBuildOutput) 属性的值。 对于需要进入 BuildOutputTargetFolder 的任何文件(默认情况下 lib),目标应将这些文件写入 ItemGroup BuildOutputInPackage 并设置以下两个元数据值:
FinalOutputPath:文件的绝对路径;如果未提供,则标识用于计算源路径。
TargetPath:(可选)当文件需要进入到 lib<TargetFramework> 中的子文件夹时设置,如在其各自的区域性文件夹下的附属程序集。 默认为文件的名称。

另一种方式是 PATH_TO_NUSPEC_FILE
修改 .nuspec 文件配置

优先使用第一种方案

参考文档:https://docs.microsoft.com/zh-cn/nuget/what-is-nuget

posted @ 2020-05-26 10:22  microestc  阅读(1933)  评论(0编辑  收藏  举报