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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM