当前位置: 首页 > 编程语言 > C#

从一个解决方案中的多个项目创建一个NuGet包

时间:2023-04-10 11:33:42 C#

从一个解决方案中的多个项目创建一个NuGet包D)。A和B可以被认为是解决方案中的顶级项目。A和B独立指代C、D。这四个项目代表我用来处理自动化工作流的一组服务。它们都是密切相关的,只会在一个地方(服务管理器)使用,所以我不想将它们分成不同的解决方案。我的问题是我想创建一个包含所有4个库的NuGet包,而不必全部构建它们并手动收集它们的DLL。我知道我可以通过让A或B引用其余项目来实现这一点,但这并不是真正的关系,我觉得应该避免这种情况。我在这个问题上做了很多搜索,除了手动收集DLL并自己构建包之外,我找不到其他解决方案。有没有办法使用NuGet的功能实现我想要的结果?注意:如果标签不清楚,我使用的是VS2010和TeamCity构建服务器。如果相关的话,我还通过Stash服务器使用Git。编辑:我刚刚意识到这可能很重要并且值得一提。这些项目确实引用了我需要标记为依赖项的其他NuGet包。您必须定义自己的nuspec清单。您可以在文件部分中列出包含程序集:...有关更多详细信息,请参阅NuSpec参考。然后在NuPack构建步骤中引用该nuspec文件而不是proj。如果您已经下载了NuGet.exe,您可以运行:nugetpackMyproject.csproj-IncludeReferencedProjs,这应该包括您的所有项目。以下是NuGet文档中的说明:如果您的项目引用其他项目,您可以将引用的项目添加为包的一部分,或使用-IncludeReferencedProjects选项添加为依赖项。这是递归完成的。例如,假设您有项目A.csproj,它引用B.csproj和C.csproj,B.csproj引用D.csproj和E.csproj,C.csproj引用F.csproj和G.csproj。然后,当您运行:nugetpackA.csproj-IncludeReferencedProjects生成的包将包括来自项目B、C、D、E、F和G的文件以及来自项目A的文件。引用的项目将作为依赖项添加,如果它有一个相应的同名nuspec文件。使用相同的示例,现在假设文件C.nuspec与项目文件C.csproj位于同一目录中。当您运行:nugetpackA.csproj-IncludeReferencedProjects生成的包将包括来自项目B、D、E的文件以及来自项目A的文件,并且包依赖于C。另请参阅命令行参考。这可能会解决问题:nuget.exepackproj.csproj-IncludeReferencedProjects你可以看到:Createanugetpackageforasolutionwithmultipleprojects以上是C#学习教程:CreateaNuGetfrommultipleprojectsinasolutionIfallthecontentsharedby包对你有用,需要了解更多C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: