Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

提案:关于源代码包的引用依赖问题 #79

Open
walterlv opened this issue Jun 16, 2020 · 5 comments
Open

提案:关于源代码包的引用依赖问题 #79

walterlv opened this issue Jun 16, 2020 · 5 comments

Comments

@walterlv
Copy link
Member

walterlv commented Jun 16, 2020

利益相关:双包用户(库包和源码包,由同一个项目打包出来)

提案内容:

  1. 任何情况下(有或者没有打源码包,有或者没有安装 SourceYard,设置任何源码包的专属配置),项目打出的库包都不应该有区别。
  2. 大多数依赖默认不对打出的源码包产生任何影响,包括:
    • PackageReference
    • ProjectReference
    • Reference
  3. 少部分依赖应该直接加入到源码包中,包括:
    • FrameworkReference
  4. 必须显式声明的依赖,才会加入到源码包的依赖中,见下方示例。

示例 1:将库包作为双包项目中源码包的依赖,打出的源码包将包含库包依赖。

<PackageReference Include="Walterlv.Logger" Version="5.1.0" IsSourceDependency="True" />

示例 2:将双包的源码版本作为双包项目中源码包的依赖,打出的源码包将包含源码包依赖。

<PackageReference Include="Walterlv.Logger" Version="5.1.0" PackAsSourceDependency="Walterlv.Logger.Source" />

示例 3:将源码包作为双包项目中源码包的依赖,打出的源码包将包含源码包依赖。

<PackageReference Include="Walterlv.Logger.Source" Version="5.1.0" IsSourceDependency="True" />

其中示例 3 与此 PR 冲突( #76 ),将来可能产生兼容性问题。

@lindexi
Copy link
Member

lindexi commented Jun 16, 2020

示例 2 存在的坑在于更新的问题,如 https://github.com/dotnet-campus/dotnetCampus.YamlToCSharp 改名了,预计将会缺少更改

但是优势在于版本号相同

@lindexi
Copy link
Member

lindexi commented Jun 16, 2020

示例 3 反过来写就可以,提供 IsSourceDependency="False" 将默认支持 #76 的功能

@walterlv
Copy link
Member Author

@lindexi

示例 2 存在的坑在于更新的问题,如 https://github.com/dotnet-campus/dotnetCampus.YamlToCSharp 改名了,预计将会缺少更改

但是优势在于版本号相同

没懂。

示例 3 反过来写就可以,提供 IsSourceDependency="False" 将默认支持 #76 的功能

也行。相当于源码包你认为默认生成依赖,而库包默认不生成依赖。

@lindexi
Copy link
Member

lindexi commented Jun 16, 2020

示例 2 存在的坑

           <PackageReference Include="Walterlv.Logger" Version="5.1.0" PackAsSourceDependency="lindexi.doubi.Source" />

然后半天没调试出来

@walterlv
Copy link
Member Author

示例 2 能写出来的唯一原因是:引用的是一个双包,否则永远不可能写出等价的代码来。所以,你可以做编译检查。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants