.Net Standard 2.0 生成 NuGet 包,包括同一解决方案中的项目和 NuGet 包
.Net Standard 2.0 Generate NuGet package including projects in the same solution and NuGet packages
我在这里看到了一些类似我的问题,但大约一年前就有人回答了,我的想法是检查是否有关于此的任何消息。
假设我有一个具有以下结构的解决方案:
点网解决方案
- DotNetProjectReferencingSubProjects(该项目是生成nuget包的项目)
- 项目A
- 项目 B
项目 C
-NugetPackageInsideProjectC
结构解释
这个项目的想法是从 public/private 云中检索文档,但我想让调用对调用者透明,所以我将解决方案架构如下:
- CloudHandler.Library.csproj
- CloudHandler.Services.Factory.csproj
- CloudHandler.Plugin.Aws.csproj
- CloudHandler.Plugin.PrivateCloud1.csproj
- CloudHandler.Plugin.Gcp.csproj
- CloudHandler.Plugin.PrivateCloud2.csproj
CloudHandler.Library.csproj 引用 CloudHandler.Services.Factory.csproj
CloudHandler.Services.Factory.csproj
参考文献
- CloudHandler.Plugin.Aws.csproj
- CloudHandler.Plugin.PrivateCloud1.csproj
- CloudHandler.Plugin.Gcp.csproj
- CloudHandler.Plugin.PrivateCloud2.csproj
CloudHandler.Plugin.Aws.csproj 引用 AWSSDK.S3
当我打包CloudHandler.Library甚至CloudHandler.Services.Factory时,使用这个引用的项目抛出异常,因为它找不到AWSSDK.S3引用。
如何打包包含所有引用的 DotNetProjectReferencingSubProjects? (这些项目引用的项目和 NuGet 包?)
提前致谢。
我读过一些建议添加 csproj 文件的想法,它在 nuspec 上被引用。
想想以后维护这个项目,没有知识的人很难想通。
传递依赖性工作正常,但您需要为每一层创建(和upload/manage)包;仅仅为 CloudHandler.Library
创建一个 nupkg 是不够的 - 您需要为 树中的所有内容创建一个 nupkg.
使用私有包缓存在本地完成,该缓存具有:
- CloudHandler.Domain.Plugins.Aws.1.0.0.nupkg
- CloudHandler.Domain.Plugins.Azure.1.0.0.nupkg
- CloudHandler.Domain.Plugins.Gcp.1.0.0.nupkg
- CloudHandler.Domain.Providers.1.0.0.nupkg
- CloudHandler.Infrastructure.Contracts.Plugin.1.0.0.nupkg
- CloudHandler.Infrastructure.Contracts.Provider.1.0.0.nupkg
- CloudHandler.Library.1.0.0.nupkg
- CloudHandler.Services.Factory.1.0.0.nupkg
然后我可以创建一个测试项目:
<ItemGroup>
<PackageReference Include="CloudHandler.Library" Version="1.0.0"/>
</ItemGroup>
一切正常。构建输出包括 AWSSDK.Core.dll 和 ASWWDK.S3.dll 等。测试项目可以看到扩展依赖树中的所有类型,尽管只直接依赖 CloudHandler.Library
.
根据您的需要,这 可能 可以作为一种动力,使您的包的粒度略微降低。或者它可能正好适合您的需要。
我在这里看到了一些类似我的问题,但大约一年前就有人回答了,我的想法是检查是否有关于此的任何消息。
假设我有一个具有以下结构的解决方案:
点网解决方案
- DotNetProjectReferencingSubProjects(该项目是生成nuget包的项目)
- 项目A
- 项目 B
项目 C
-NugetPackageInsideProjectC
结构解释
这个项目的想法是从 public/private 云中检索文档,但我想让调用对调用者透明,所以我将解决方案架构如下:
- CloudHandler.Library.csproj
- CloudHandler.Services.Factory.csproj
- CloudHandler.Plugin.Aws.csproj
- CloudHandler.Plugin.PrivateCloud1.csproj
- CloudHandler.Plugin.Gcp.csproj
- CloudHandler.Plugin.PrivateCloud2.csproj
CloudHandler.Library.csproj 引用 CloudHandler.Services.Factory.csproj
CloudHandler.Services.Factory.csproj 参考文献
- CloudHandler.Plugin.Aws.csproj
- CloudHandler.Plugin.PrivateCloud1.csproj
- CloudHandler.Plugin.Gcp.csproj
- CloudHandler.Plugin.PrivateCloud2.csproj
CloudHandler.Plugin.Aws.csproj 引用 AWSSDK.S3
当我打包CloudHandler.Library甚至CloudHandler.Services.Factory时,使用这个引用的项目抛出异常,因为它找不到AWSSDK.S3引用。
如何打包包含所有引用的 DotNetProjectReferencingSubProjects? (这些项目引用的项目和 NuGet 包?)
提前致谢。
我读过一些建议添加 csproj 文件的想法,它在 nuspec 上被引用。 想想以后维护这个项目,没有知识的人很难想通。
传递依赖性工作正常,但您需要为每一层创建(和upload/manage)包;仅仅为 CloudHandler.Library
创建一个 nupkg 是不够的 - 您需要为 树中的所有内容创建一个 nupkg.
使用私有包缓存在本地完成,该缓存具有:
- CloudHandler.Domain.Plugins.Aws.1.0.0.nupkg
- CloudHandler.Domain.Plugins.Azure.1.0.0.nupkg
- CloudHandler.Domain.Plugins.Gcp.1.0.0.nupkg
- CloudHandler.Domain.Providers.1.0.0.nupkg
- CloudHandler.Infrastructure.Contracts.Plugin.1.0.0.nupkg
- CloudHandler.Infrastructure.Contracts.Provider.1.0.0.nupkg
- CloudHandler.Library.1.0.0.nupkg
- CloudHandler.Services.Factory.1.0.0.nupkg
然后我可以创建一个测试项目:
<ItemGroup>
<PackageReference Include="CloudHandler.Library" Version="1.0.0"/>
</ItemGroup>
一切正常。构建输出包括 AWSSDK.Core.dll 和 ASWWDK.S3.dll 等。测试项目可以看到扩展依赖树中的所有类型,尽管只直接依赖 CloudHandler.Library
.
根据您的需要,这 可能 可以作为一种动力,使您的包的粒度略微降低。或者它可能正好适合您的需要。