是否有任何真正的方法可以将 NuGet 元包创建为 msbuild .proj 而不是直接使用 nuspec?我想这样做,以便我可以利用其他 MSBuild 功能,包括 PackageVersioning,包括内容文件等。
我的意思是我想为我的元包创建一个简单的项目(比如说 MyMetaPackage.proj:
<Project>
<Import Project="$(MSBuildSDKsPath)\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets" />
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs" Version="3.0.0-beta5" PrivateAssets="None" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions" Version="3.0.0-beta5" PrivateAssets="None" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Http" Version="3.0.0-beta5" PrivateAssets="None" />
<PackageReference Include="Microsoft.Azure.WebJobs.ServiceBus" Version="3.0.0-beta5" PrivateAssets="None" />
<PackageReference Include="MyOtherPackage" Version="4.5.0" />
<Content PackagePath="readme/$(PackageVersion).txt" Include="readme.txt" />
</ItemGroup>
</Project>
这样做的问题是 MyMetaPackage.nupkg 最终将所有 contentFiles 和海关道具/目标导入其中,这搞砸了,即使它只是一个元包 - 这些事情应该只为 MyMetaPackage 的消费者完成。
将 PrivateAssets 添加到 MyMetaPackage.proj 根本没有帮助,因为 nuspec 也会将它们排除在外,并且它们也不会传递给消费者。