Visual Studio 2017 Nuget 包排除项目引用作为另一个 nuget 引用,改为添加程序集 [英] Visual Studio 2017 Nuget pack exclude Project reference as another nuget reference, add assembly instead

本文介绍了Visual Studio 2017 Nuget 包排除项目引用作为另一个 nuget 引用,改为添加程序集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!


当我们在 Visual Studio 2017 中创建 nuget 包时,它默认将项目引用添加为另一个 nuget 引用.我们如何在创建包时禁用它,而是:

When we create a nuget package in visual studio 2017, it adds the project references as another nuget reference by default. How can we disable that while creating package and instead:

  • 选择不同的包名
  • 在创建包时包含项目的 dll


PackageReference 可以用 PrivateAssets="All" 标记以确保它不会结束打包时作为消费库的 NuGet 依赖项.然后消费库可以使用自定义目标将文件添加到构建的 nuget 包中.csproj 文件的完整示例如下所示:

The PackageReference can be marked with PrivateAssets="All" to ensure that it doesn't end up as a NuGet dependency of the consuming library when packed. Then the consuming library can use a custom target to add files to the built nuget package. A full example for the csproj file could look like this:

<Project Sdk="Microsoft.NET.Sdk">

    <ProjectReference Include="..\testprivatelib\testprivatelib.csproj" PrivateAssets="All" />

  <Target Name="IncludeP2PAssets">
      <BuildOutputInPackage Include="$(OutputPath)\testprivatelib.dll" />

其中 testprivatelib.csproj 是一个构建 DLL 的项目,您希望将其额外包含到 .nupkg 文件中,并且不为该引用的项目发布额外的 NuGet 包.

Where testprivatelib.csproj is a project that builds a DLL that you want to additionally include into the .nupkg file and not publish an extra NuGet package for that referenced project.

指定不同的 NuGet 包比较困难.它需要手动创建一个 .nuspec 文件,使用它来打包 NuGet 包.您可以在 - LibA.csproj 设置为使用 LibA.nuspecdotnet pack 被调用时.

Specifying different NuGet packages is more difficult. It requires manually creating a .nuspec file using it to pack a NuGet package. You can see an example how this can be done at - the LibA.csproj is set up to use LibA.nuspec when dotnet pack is called.

这篇关于Visual Studio 2017 Nuget 包排除项目引用作为另一个 nuget 引用,改为添加程序集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

登录 关闭
发送“验证码”获取 | 15天全站免登陆