有什么真正的方法可以将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也将它们排除在外,它们也不会传递给消费者。