参考另一个项目?

时间:2010-11-03 17:37:15

标签: c# visual-studio

当我创建对Visual Studio中同一解决方案的一部分的另一个项目(库)的引用时,该项目是否已编译到我的程序集中,还是链接到另一个项目创建的程序集?我想知道我是否需要分发两个程序集,或者我是否只能分发一个程序集。

如果后者(必须分发两者),我如何强制它编译成一个程序集?

5 个答案:

答案 0 :(得分:6)

  

那个项目然后被编译到我的程序集中,还是链接到另一个项目创建的程序集?

另一个项目是自己组装的;它没有编译成你的。

  

我想知道我是否需要分发两个程序集,或者我是否只能分发一个程序集。

你必须分发两者。

  

如何强制它编译成一个程序集?

除了将源代码从其他项目移动到主项目之外,没有内置的方法可以使用Visual Studio执行此操作。您可以查看ILMerge

答案 1 :(得分:2)

默认情况下,库项目将生成一个单独的程序集/ dll。根据这篇文章

Linking statically in C#

虽然可以使用ILMerge将这些单独的dll合并为一个组合而已。

答案 2 :(得分:2)

您可以在项目的属性页面上使用预构建操作将源文件从其他项目复制到main。 这样,您只能在一个地方修改源代码,并且始终有一个单独的dll作为选项。当您决定使用dll删除复制的源文件和预构建操作并添加对库项目的引用时

答案 3 :(得分:1)

如果您引用另一个项目,则编译器将为执行整体解决方案所需的每个项目生成一个dll文件。

答案 4 :(得分:1)

Solution file用于轻松工作,并管理项目,它不会对默认项目的方式做任何改变,可能你想要安装盾牌?有不同的Dll也不错,你可以更好地发展你的主项目。