项目参考与文件参考?

Dha*_*ana 30 reference visual-studio

可以在项目中以两种方式添加引用.

  1. 项目参考.
  2. 文件参考.

但是,何时使用Project以及何时使用File引用?

Jar*_*Par 32

你没有指定,但我猜你是指Visual Studio?

项目引用和文件引用之间的主要区别在于是否有可用的实时更新.在项目参考中,您将能够通过Intellisense等项目立即在另一个项目中看到编辑在一个项目中的效果.因此,如果您添加名为Foo的类,则此类型将立即显示在intellisense中的任何项目中,该项目具有该项目的项目引用.

另一方面,文件引用只能看到磁盘上存在的更改.必须执行编译并将位写入磁盘才能查看更改.

通常,最好使用项目引用.

需要考虑的另一个角度是项目的相对语言.如果两个项目中的语言相同,则项目到项目引用最有用.如果语言不同,则往往更像文件引用而不是项目引用.


jam*_*mes 9

我刚刚经历过这个......

我们从供应商处收到了大约53种不同的VS2005 C#解决方案文件,这些文件创建了63个不同的项目.dll,所有这些都由一个单独的商业应用程序调用.

所有项目都包含对其他项目的dll的文件引用.

这种方法的问题很大:解决方案之间的依赖关系几乎不可能解决,涉及很多 "findstr"命令; VS的"查找定义"功能无法找到文件引用的dll的源,它只显示dll内部函数的定义; 由于更改而重建是容易出错,繁琐,并涉及打开许多不同的解决方案来重新构建整个dll集.

我花了数周时间将53个不同的解决方案文件合并为一个,然后花了额外的时间将所有文件依赖项更改为项目依赖项.现在,当您"找到定义"时,您将被带到源文件.现在,当您更改一个低级项目时,所有依赖项目将在您构建(一个)解决方案时构建.

我做了一些额外的更改,但最方便的是将所有单独项目的构建目录设置为solutiondir/bin.这样,所有的dll都会在一个地方结束.

哦,是的:我还为所有引用项目的dll设置'copy local'为'no'.这样,每个dll都会在构建项目时显示在solutiondir/bin中,并由下一个要构建的项目找到.

我们现在唯一的问题是,如果我使用Windows窗体更改用作另一个项目的数据源的项目,那么在重新构建作为窗体数据源的项目之前,Windows窗体将无法在Designer中打开.一个小的,小的价格,以支付项目参考的所有好处.此外,我必须在结账时从svn构建解决方案,因为dll不在svn中.在上面的例子中,数据源.dll不在那里供Designer查找.


Sho*_*ban 5

使用“项目参考”来添加对解决方案中的程序集的参考。

使用“文件引用”添加对交叉解决方案程序集的引用

资源