Nuget的一点疑问?

gamezealot 2015-12-16 11:06:35
最近刚接触C#,发现Nuget这个管理,很方便。但有个源代码管理方面的问题没搞清,想请教大家。
主要是说第三方开源代码,传统意义上的,使用第三方代码的普遍做法应该是这样的。
1. 为第一个第三方代码建立一个branch,比如这个源代码版本号为4.3.1,将源代码放进去。
2. 为第二个第三方代码建立一个branch,比如源代码版本号为2.5.3,将源代码放进去。
3. 为自己的工程建立一个branch。比如1.0,将自己写的源代码放进去。
4. 比如要发布自己的产品1.0,则目录结构大致是这样的。
publish/1.0/myproduct
3rdparty/ziplibrary/4.3.1/src/
3rdparty/loggerlib/2.5.3/src/
编译系统将两个第三方代码编译放到某个目录下,并将myproduct编译放到某个目录下,最后将这些所有文件打包,产生安装包,并签名等等。

这样产品最终形成,而且一旦发现问题,所有的源代码都在掌握之中,可以方便的查找问题。

而对于Nuget,我的问题是第三方源代码看起来全都是package,说白了就是一些已经编译出来的DLL和其他文件。这些文件的源代码不可控,对于企业来说,不能只是简单的引用DLL文件,这样公司能不能同意都是个问题。

说白了就是对于公司来说,第三方源代码如何管理,如果使用nuget的话。
是不是可以根据DLL的版本,然后查找到第三方开源的网站,然后下载对应的源代码?如果是这样,谁能保证这个第三方的开源网站会不会出问题。 总之就是一句话,第三方源代码不可控的问题怎么解决。

我应该怎么做?我对C#不太了解,所以有这样的问题,希望大家帮忙。
...全文
333 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gamezealot 2015-12-17
  • 打赏
  • 举报
回复
最后一个问题,解决了就结贴了。先谢谢楼上几位兄弟!
  • 打赏
  • 举报
回复
在过去,大多数.net 应用通常都只有几百k字节,只要10几秒钟就编译完毕,直接copy到目标机器上就能运行了。这是因为大多数框架都在.net framework中已经发布了到GAC当中。而如果你做一个其它平台下的同样功能的系统,你甚至不得不为每一个重达几百M字节的发布安装包而伤脑筋,而且编译一次需要10分钟。 现在在.net下的通用第三方框架也越来越多,那么nuget 的热更新方式也是个必然。而且这也就造成你打包发布的应用也是越来越大。但是也还没有大到其它的平台那种、完全靠各种开源框架撑起来系统架构的程度(开源软件总的来说是非常垃圾的,维护困难)。 我们看开源代码。但是不一定要在开发时去重复编译所有的第三方代码。
Poopaye 2015-12-16
  • 打赏
  • 举报
回复
这就好像你去饭店吃饭,食物是否安全对你来说的不可控的,你是怎么解决这个问题的?
  • 打赏
  • 举报
回复
nuget 的作用在于组件的“热修复”。相当于你买的汽车如果重要部件需要升级了,人家负责免费给你升级配件。而你的那种想法,就好像“国产操作系统、国产手机系统”一样,拿人家的源代码来随便改改。这是不同的思路。
  • 打赏
  • 举报
回复
nuget 是用来发布插件、组件的,不是用来发布源代码项目工程的。
  • 打赏
  • 举报
回复
给 你 用 d l l 不 代 表 开 源 , 这 些 d l l 一 般 都 是 经 过 签 名 的 , 如 果 要 开 源 , 那 就 去 开 源 社 区 找 代 码 如 果 仅 仅 是 因 为 开 源 问 题 就 决 定 用 不 用 , 那 还 用 什 么 C # 啊 , C # 到 现 在 都 没 有 全 部 开 源 呢 , 太 不 安 全 了
gamezealot 2015-12-16
  • 打赏
  • 举报
回复
大家帮忙下咯
gamezealot 2015-12-16
  • 打赏
  • 举报
回复
引用 7 楼 wyd1520 的回复:
[quote=引用 6 楼 gamezealot 的回复:] 就是说这个的使用C#的相当普遍的现象,对于公司的项目(商业版本),只要符合相关的license的要求,就可以不需付费,然后免费使用各种DLL? 就是说目前普遍的商业软件也都是这么做的吗?直接使用nuget,而不自己管理源代码?
nuget跟自己管理原码是不冲突的,上面的组件大多数是免费的,少部份收费,用之前自己看清license就是了。 你要查源码NUGET不提供这功能,你可以理解成一个下载DLL组件的站就是了,要原码你应去github上找去。。[/quote] 谢谢,这个我明白,上面几位兄弟已经说的很清楚了。我就是想了解下业界现在的普遍做法,是只使用nuget而不管其源代码吗?
本拉灯 2015-12-16
  • 打赏
  • 举报
回复
引用 6 楼 gamezealot 的回复:
就是说这个的使用C#的相当普遍的现象,对于公司的项目(商业版本),只要符合相关的license的要求,就可以不需付费,然后免费使用各种DLL? 就是说目前普遍的商业软件也都是这么做的吗?直接使用nuget,而不自己管理源代码?
nuget跟自己管理原码是不冲突的,上面的组件大多数是免费的,少部份收费,用之前自己看清license就是了。 你要查源码NUGET不提供这功能,你可以理解成一个下载DLL组件的站就是了,要原码你应去github上找去。。
gamezealot 2015-12-16
  • 打赏
  • 举报
回复
就是说这个的使用C#的相当普遍的现象,对于公司的项目(商业版本),只要符合相关的license的要求,就可以不需付费,然后免费使用各种DLL? 就是说目前普遍的商业软件也都是这么做的吗?直接使用nuget,而不自己管理源代码?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧