创建一个NuGet Metapackage作为MSBuild项目

时间:2018-08-17 22:21:00

标签: msbuild nuget nuspec msbuild-15

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

0 个答案:

没有答案