我对C#很新,我的背景主要是C / C ++中的一些OOP。我确定我错误地表达了这一点,这就是谷歌没有帮助我的原因,但是这里也是如此。
我有两个程序使用相同的类库,当我将类库添加到包含其中一个程序的解决方案时,类库被编译为.dll,然后链接到主解决方案。是否可以将库代码直接编译到解决方案代码中?
我可以通过将类库代码导入主项目层次结构来实现这一点,但我不想这样做,因为我必须在两个地方更新对库的任何更改。
我应该将我的类库定义为不同的实体,Visual Studio 2010的解决方案设置中是否有选项可以执行我想要的操作?
答案 0 :(得分:4)
只需通过引用将包含类库的文件添加到项目中,而不是添加为副本。
答案 1 :(得分:1)
编辑:
您可以使用ILMerge来合并.dll和.exe。你不能静态链接C#中的东西。它必须动态完成。
如果将代码编译为DLL,并将项目添加到另一个项目的引用中,编译器将自动将类库复制到相应的构建文件夹。
当您指定引用时,C#可以自动查找应用程序所需的类,命名空间和函数。不需要导入任何标题等,因为所有数据都存储在DLL中的元数据中,而.net运行时将自动查找它。我还假设您正在使用C#库。
答案 2 :(得分:1)
你在谈论静态链接
有一个工具ILMerge允许你这样做。
一般来说,在C#中这不是一个问题,因为C#Assemblies / dlls在程序集头中提供版本信息(你可以控制它)在Visual Studio中),因此没有dll地狱的风险。
答案 3 :(得分:0)