【发布时间】:2015-01-23 10:36:07
【问题描述】:
我有一个解决方案,我想从两个项目中创建一个 NuGet 包。
如果只是一个项目,我会使用 .csproj 文件来指定 NuGet 打包器,但由于我希望将两个不同的项目放入完成的包中,所以我不能这样做。
我创建了一个引用来自两个项目的 DLL 的 NuSpec 文件,然后在命令行中使用 -IncludeReferencedProjects 开关将其打包。这包括来自同一解决方案的引用项目,但不包括作为项目中依赖项的任何 NuGet 包。
我尝试在另一个解决方案中引用新的 NuGet 包,该解决方案已构建并运行,但在运行时遇到了 FileNotFoundException,因为它正在从我刚刚创建的 NuGet 包中的依赖项的 NuGet 包中查找 DLL。
我意识到我可以在 NuSpec 文件中包含 NuGet 依赖项,但是当我的一个项目添加另一个 NuGet 引用时,这将变得过时。
是否可以设置 NuSpec 文件,以便它使用我的两个项目中的 .csproj 文件并正确设置 NuGet 依赖项,即使项目已使用新的 NuGet 依赖项进行更新?
【问题讨论】:
-
您能描述一下您的项目之间的关系吗?一个项目是否引用了另一个项目?另外,解决方案中是否只有两个项目,或者还有更多,您还需要打包它们?
-
一个引用另一个。解决方案中还有其他项目,但它们不需要作为包的一部分。但是,如果它们被包中包含的项目引用,则可以通过在打包包时使用 -IncludeReferencedProjects 参数来解决。问题不在于解决方案内的引用,而在于确保正确引用了所有必需的 NuGet 包。
标签: nuget nuget-package