dotnet-campus / SourceYard

Add a NuGet package only for dll reference? By using dotnetCampus.SourceYard, you can pack a NuGet package with source code. By installing the new source code package, all source codes behaviors just like it is in your project.
MIT License
51 stars 12 forks source link

源码包项目引用源码包 #60

Closed wuyu8512 closed 4 years ago

wuyu8512 commented 4 years ago

如标题所述,这样生成后的源码包并没有依赖于引用的源码包

lindexi commented 4 years ago

@wuyu8512 已知问题,还没修复

lindexi commented 4 years ago

https://github.com/dotnet-campus/SourceYard/projects/1#card-31083437

lindexi commented 4 years ago

@wuyu8512 如果引用的源代码包设置了 PrivateAssets 为 all 那么这个包不会被源代码包引用哦。而默认安装的源代码包都会设置PrivateAssets 为 all 这样做的原因是为了解决

A 项目安装了源代码包 Foo 包

而 B 项目引用了 A 项目,如果此时的 Foo 包没有设置 PrivateAssets 为 all 那么将会在 B 项目也安装了源代码包,而源代码包的含义就是仅安装在 A 项目里面,所以此时的 B 项目不应该引用

和打包相同的是,在打包时,将不会添加 PrivateAssets 为 all 的包作为引用,所以源代码包不会包含原有源代码包作为引用

lindexi commented 4 years ago

当前的问题是,如果安装的包是源代码包,应该需要在引用上添加。如果安装的不是源代码包,那么只要标记 PrivateAssets 为 all 的包不能添加