我们在公司内部创建和托管具有源代码和深层依赖关系的 NuGet 包。我在让依赖关系“正常工作”的问题上遇到了一些困难。
为了清晰起见,这是特定于在 .Net Core / PackageReference 项目中通过 VS 或 Rider 安装包的情况。我不认为这是 VS/Rider/等软件的错误,而更可能是我们做错了一些事情。
场景:
- 使用“contentFiles/any/any”风格编译创建“Package A”。 - 在“contentFiles/any/any”下创建一个名为“Source”的子文件夹。 - 将源代码文件放入“Source”文件夹中。 - 依赖于“Package B”。 - 再次使用 PackageReference 风格创建“Package B”,并带有一个“Source”子文件夹。 - 在其“Source”文件夹中放置源代码文件。 - 打包并发布两个包。
期望结果:
安装“Package A”(使用内置的NuGet包管理器UI)。
安装“包A”。
- 您的项目获得了一个“源”文件夹。 - A的源文件被引用到新的“源”文件夹中,并与项目一起编译。 - “包B”也被安装,因为它是一个依赖项。 - B的源文件没有被引用到“源”文件夹中。 - 不能编译Package A代码,因为B的源代码不在项目中。 手动安装“包B”,与“A”同样的方式。
- B的源文件被引用到项目中的新的“源”文件夹中。 - 现在可以编译和使用“包A”。
如果需要示例nuspec文件等,请告诉我。
谢谢
(这是从https://github.com/NuGet/Home/issues/8858转发的。已经一个星期没有回复了)
为了清晰起见,这是特定于在 .Net Core / PackageReference 项目中通过 VS 或 Rider 安装包的情况。我不认为这是 VS/Rider/等软件的错误,而更可能是我们做错了一些事情。
场景:
- 使用“contentFiles/any/any”风格编译创建“Package A”。 - 在“contentFiles/any/any”下创建一个名为“Source”的子文件夹。 - 将源代码文件放入“Source”文件夹中。 - 依赖于“Package B”。 - 再次使用 PackageReference 风格创建“Package B”,并带有一个“Source”子文件夹。 - 在其“Source”文件夹中放置源代码文件。 - 打包并发布两个包。
期望结果:
安装“Package A”(使用内置的NuGet包管理器UI)。
- 您的项目将获得一个“源”文件夹。
- A的源文件被引用到新的“源”文件夹中,并与项目一起编译。
- 由于它是依赖项,“Package B”也被安装。
- B的源文件也被引用到“源”文件夹中,并与项目一起编译。
安装“包A”。
- 您的项目获得了一个“源”文件夹。 - A的源文件被引用到新的“源”文件夹中,并与项目一起编译。 - “包B”也被安装,因为它是一个依赖项。 - B的源文件没有被引用到“源”文件夹中。 - 不能编译Package A代码,因为B的源代码不在项目中。 手动安装“包B”,与“A”同样的方式。
- B的源文件被引用到项目中的新的“源”文件夹中。 - 现在可以编译和使用“包A”。
如果需要示例nuspec文件等,请告诉我。
谢谢
(这是从https://github.com/NuGet/Home/issues/8858转发的。已经一个星期没有回复了)