作者QQ29 (我爱阿蓉)
看板C_Sharp
标题[问题] Dll 可以包DLL吗?
时间Fri Jul 22 00:28:03 2011
大家好
我目前遇到一个奇怪的小问题~
假如说 我写一个class library 叫 Foo.dll
但我内部有用到一个假如叫座sqlite.dll
我好心的把我写的Foo.dll
给我的朋友使用
他compile OK 因为他根本看不到sqllite.dll的任何资讯
但他只要一invoke我开的API
就exception
我大概知道是因为我忘了给她sqlite.dll
但是这样不就曝露出我内部偷用了sqllite.dll
我并不想让人知道我偷使用别人的dll
这有办法解决吗?
还是这没办法一定要这样做??
我理想的做法是我build出来的Foo.dll 别人直接拿来用就可以了
不需要传给他我内部使用的其他DLL
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 188.223.83.48
1F:→ Anonymoux:dynamic load dll 之类的key words 07/22 00:40
2F:→ james732:有一个烂招是找Sqlite的原始码加入专案後一起编...XD 07/22 00:46
3F:→ QQ29:1楼是说 在专案设定可以找到? 我记得之前小时候写BCB有类似 07/22 02:29
4F:→ QQ29:东西~ 不过我实在不懂C#的dll算是static lib还是dynamic 07/22 02:29
5F:→ QQ29:我会问这问题是~ 我也许会漏给东西给对方 对方compile过 07/22 02:30
6F:→ QQ29:run time才发现坏掉 很麻烦@@ 07/22 02:30
7F:→ leicheong:不需要sqlite.dll也可以跑的话你加入这DLL是为了甚麽? 07/22 07:59
8F:→ leicheong:另外加入sqlite原始码的方式除非你朋友的专案是 07/22 08:03
9F:→ leicheong:public domain, 否则需要承受法律风险. (见sqlite的 07/22 08:04
10F:→ leicheong:官网copyright页关於需要Explicit License的部份. 07/22 08:05
11F:→ leicheong:因此不想出问题建议还是直接把sqlite.dll送过去. 07/22 08:05
12F:推 aecho:咦?所以包成了sqlite.dll就可以回避license的问题吗? 07/22 08:16
14F:推 aecho:我记得我包出来的foo.dll,还是要给sqlite.dll出来。 07/22 08:25
15F:→ aecho:sqlite的license是像LGPL那样子吗?包成dll就可以规避吗? 07/22 08:26
16F:推 horngsh:leicheong大已经说会有法律问题, 要包进来请三思. 07/22 10:35
17F:推 rex1224:我记得假如你是用Using xxx.xxx那你就必须给你参照的dll 07/22 10:38
18F:→ agogoman:把sqlite.dll 转成binary, 要用的时候写出来, 再load来用 07/22 14:24
19F:推 leicheong:你可以直接在你的程式使用sqlite.dll, 但如果只抽取 07/22 16:23
20F:→ leicheong:一部份程式码而不是用完整的sqlite.dll, 可能需要书面 07/22 16:24
21F:→ leicheong:授权... 07/22 16:24
22F:→ leicheong:毕竟sqlite内包括很多有专利的东西, 那些专利的持有人 07/22 16:27
23F:→ leicheong:只是同意豁免sqlite在版权页内说明的情况的用途, 不包括 07/22 16:28
24F:→ leicheong:个别功能抽出来再开发或转写成其他程编语言. (除非你 07/22 16:31
25F:→ leicheong:要写的东西是免费地公开给所有人使用的) 07/22 16:31
26F:推 aecho:感谢leicheong大的说明。所以如果修改了sqlite的内部实作, 07/22 20:33
27F:→ aecho:基於public domain的缘故,需要释出自己的patch。 07/22 20:34
28F:→ QQ29:其实sqlite只是一个比方啦~只是我在想可不可以不要给 07/23 06:27
29F:→ QQ29:一次一个dll就包全部了? 07/23 06:28
30F:→ deuter:如果不考虑license问题,可以用 ILMerge 把多个dll合成一个 07/23 12:46
31F:推 horngsh:D大说的应是正解 07/23 17:23
32F:→ james732:我想问,如果把sqlite.dll改名叫core.dll这样会侵权吗? 07/23 18:08
33F:→ james732:(假如没有文件或任何东西注明它是sqlite.dll) 07/23 18:08
34F:推 horngsh:这样算是仿冒吧! 07/23 19:17
35F:推 tomex:用ILMerge能包dll,但SQLite.dll比较特别,包起来跑会有err 08/01 09:28