Dha*_*ana 30 reference visual-studio
可以在项目中以两种方式添加引用.
但是,何时使用Project以及何时使用File引用?
Jar*_*Par 32
你没有指定,但我猜你是指Visual Studio?
项目引用和文件引用之间的主要区别在于是否有可用的实时更新.在项目参考中,您将能够通过Intellisense等项目立即在另一个项目中看到编辑在一个项目中的效果.因此,如果您添加名为Foo的类,则此类型将立即显示在intellisense中的任何项目中,该项目具有该项目的项目引用.
另一方面,文件引用只能看到磁盘上存在的更改.必须执行编译并将位写入磁盘才能查看更改.
通常,最好使用项目引用.
需要考虑的另一个角度是项目的相对语言.如果两个项目中的语言相同,则项目到项目引用最有用.如果语言不同,则往往更像文件引用而不是项目引用.
我刚刚经历过这个......
我们从供应商处收到了大约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查找.
| 归档时间: |
|
| 查看次数: |
19286 次 |
| 最近记录: |