CoreプロジェクトをラップしてNuGetパッケージを作成するプロジェクトを作成します。
Visual Studioソリューションエクスプローラーの『ソリューション』で右クリック➡『追加(D)』➡『新しいプロジェクト(N)…』でプロジェクトをソリューションに追加します。
新しいプロジェクトを追加C#の.NETまたは.NET Standardを対象とするクラスライブラリを選択します。
新しいプロジェクトを構成しますプロジェクト名を『NuGet』にしています。
『次へ(N)』で次に進みます。
追加情報『作成(C)』でDocsプロジェクトが作成されます。
Class1.csの削除自動的に作成された『Class1.cs』を削除します。
下記のいずれかの方法でNuGetプロジェクトのプロジェクトファイルを開いて編集します。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net10.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
<PackageId>$(RootPackageId)</PackageId>
<AssemblyName>$(NuGetAssemblyName)</AssemblyName>
<RootNamespace>$(PackageId)</RootNamespace>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Core\Core.csproj" PrivateAssets="all" />
</ItemGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<TargetsForTfmSpecificBuildOutput>
$(TargetsForTfmSpecificBuildOutput);IncludeProjectReferences
</TargetsForTfmSpecificBuildOutput>
<PackageIcon>NuGet.png</PackageIcon>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<Target Name="IncludeProjectReferences" DependsOnTargets="ResolveReferences"
Condition="'$(Configuration)' == 'Release'">
<ItemGroup>
<BuildOutputInPackage Include="@(ReferenceCopyLocalPaths)"
Condition="'%(ReferenceCopyLocalPaths.ReferenceSourceTarget)' == 'ProjectReference'" />
</ItemGroup>
</Target>
<ItemGroup Condition="'$(Configuration)' == 'Release'">
<None Include="../README.md" Pack="true" PackagePath="\" />
<None Include="NuGet.png" Pack="true" PackagePath="\" />
</ItemGroup>
<Target Name="PostBuild" AfterTargets="Build" Condition="'$(Configuration)' == 'Release'">
<ItemGroup>
<DeleteFiles Include="bin\Release\$(PackageId).*.nupkg" />
</ItemGroup>
<Delete Files="@(DeleteFiles)" />
</Target>
<Target Name="PostPack" AfterTargets="Pack" Condition="'$(Configuration)' == 'Release'">
<ItemGroup>
<DeleteFiles Include="$(NuGetLibDir)\$(PackageId).*.nupkg" />
</ItemGroup>
<ItemGroup>
<CopyFiles Include="bin\Release\$(PackageId).*.nupkg" />
</ItemGroup>
<Delete Files="@(DeleteFiles)" />
<Message Text="Copy @(CopyFiles->Count()) Files to $(NuGetLibDir)" Importance="High" />
<Copy SourceFiles="@(CopyFiles)" DestinationFolder="$(NuGetLibDir)" />
</Target>
</Project>