【问题标题】:Nuget package all sub project in a solutionNuget 将所有子项目打包在一个解决方案中
【发布时间】:2023-03-07 20:14:01
【问题描述】:

我有一个包含多个项目的解决方案。项目结构如下。

/root
 A.sln
 A.nuspec
 /ProjectB
   projectB.csprj
   projectB.nuspec
 /ProjectC
   projectC.csprj
   projectC.nuspec

我有几个问题。

1- 如果我在根文件夹中运行 nuget pack A.nuspec 会发生什么。有没有办法将所有项目打包在一个解决方案中。

2- 当我发送代码 TFS 时,使用“NuGet Packager”我可以使用正则表达式来打包所有子项目,如下所示。有没有办法在本地环境中使用这样的正则表达式。

3- 是否可以创建一个包含两个子项目的 nupkg。

4- 是否可以创建一个包含多个 dll 的 nupkg。我可以将项目的所有依赖项放入 nupkg.

【问题讨论】:

    标签: tfs nuget nuget-package nuspec


    【解决方案1】:

    1- 如果我在根文件夹中运行 nuget pack A.nuspec 会发生什么。有没有办法将所有项目打包在一个解决方案中。

    我不相信有一种方法可以使用 .nupsec 将所有项目打包到一个解决方案中。这是因为创建包的过程总是从创建描述包内容的 .nuspec 包清单文件开始。当安装到项目而不是解决方案时,此清单驱动程序包的创建和使用。并且ID和Version在.nupsec中必须是唯一的,所以我们不能使用唯一的ID和Version来指定多个项目。

    2- 当我发送代码 TFS 时,使用“NuGet Packager”我可以使用正则表达式来打包所有子项目,如下所示。有没有办法在本地环境中使用这样的正则表达式。

    答案是否定的。我在本地机器上测试过,通配符在命令行中被视为非法字符

    3- 是否可以创建一个包含两个子项目的 nupkg。

    如果我理解正确,您的意思是子项目是参考项目?如果是,答案是肯定的。您可以使用选项“IncludeReferencedProjects”将引用的项目作为依赖项或作为包的一部分包含在内。详情请参考this document

    4- 是否可以创建一个包含多个 dll 的 nupkg。我可以将项目的所有依赖项都放入 nupkg 中吗?

    当然可以。您可以参考我已回答的another thread了解更多详细信息。如果要将项目的所有依赖项放入 nupkg 中,可以使用<dependencies> 将所有依赖项包含在 .nuspec 中。

        <dependencies>
           <dependency id="Newtonsoft.Json" version="9.0" />
        </dependencies>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      相关资源
      最近更新 更多