关于VS.NET中多个项目的工程相互引用和多个dll引用的问题!
2007-06-15 18:57
796 查看
(使用反射将业务对象绑定到 ASP.NET 窗体控件)http://www.microsoft.com/china/msdn/library/webservices/asp.net/aspformbinding.mspx?mfr=true
VS.NET的web解决方案中,一个解决方案里可能有很多工程,除了“表现层(UI层)工程以外”,其它工程都是dll工程。如果各个工程之间随便引用dll,经常会发生dll之间的引用冲突,导致工程无法编译。可以有2种解决方法:
1.如果把所有的工程都放在一个大的解决方案里,那么就要设置工程的编译顺序。
把只引用系统dll的工程最先编译,总有一些工程,只是引用System、System.Data、System.Xml等系统dll,这些工程就先编译。类推,引用到上面编译好的dll的工程后一步编译……直到最后一个工程。
如何设置工程的编译顺序呢?在“解决方案“图标上点右键->“项目依赖项...”,在里面把各个项目的依赖项目设置好,在“项目生成顺序”里,项目的编译顺序就自动调整好了,这样编译的时候就不会出现dll冲突的问题了!
这种方法的好处是,每次只要编译一遍,就能把所有的工程都编译好,保证从vss里签出的文件都能被编译。缺点是,要是编译很大的解决方案要n长时间!
2.把各个工程单独编译,并把dll输出到同一个指定的目录下,所有的工程都引用改目录下的dll。
如果你同时打开了2个以上的VS.NET并相互的工程,那么,有可能在编译时,系统会报错,说指定的dll正被占用。
该种方式要做的事是:
a.指定输出目录,在工程图标上点右键->“配置属性”里的“生成”、“输出”,设置好输出路径,再在“通用属性”里把“引用路径”里的错误dll引用路径删除。
b.不把引用的dll拷贝到本地目录。把项目引用dll全选中,在属性里的“复制本地”设为false就可以了,不设的话有可能发生“变量已在多处重复定义”的错误。主要,对于UI层工程(就是能运行的工程),一定要把所有改工程引用到的dll都拷贝到其bin目录下,因为“能运行的工程”在运行时只会到bin目录下寻找dll,没有的话,就会报找不到dll的运行时错误!
这种方法的好处是各个项目组只要编译自己的dll,然后提交给配置管理员,由配置管理员统一编译整个解决方案,速度比较快。缺点是,如果某个项目组只更新了源代码文件,没有提交编译好的dll,那么解决方案里引用的就不是最新的dll。
以上2种方法可以解决dll之间引用冲突的问题!
VS.NET的web解决方案中,一个解决方案里可能有很多工程,除了“表现层(UI层)工程以外”,其它工程都是dll工程。如果各个工程之间随便引用dll,经常会发生dll之间的引用冲突,导致工程无法编译。可以有2种解决方法:
1.如果把所有的工程都放在一个大的解决方案里,那么就要设置工程的编译顺序。
把只引用系统dll的工程最先编译,总有一些工程,只是引用System、System.Data、System.Xml等系统dll,这些工程就先编译。类推,引用到上面编译好的dll的工程后一步编译……直到最后一个工程。
如何设置工程的编译顺序呢?在“解决方案“图标上点右键->“项目依赖项...”,在里面把各个项目的依赖项目设置好,在“项目生成顺序”里,项目的编译顺序就自动调整好了,这样编译的时候就不会出现dll冲突的问题了!
这种方法的好处是,每次只要编译一遍,就能把所有的工程都编译好,保证从vss里签出的文件都能被编译。缺点是,要是编译很大的解决方案要n长时间!
2.把各个工程单独编译,并把dll输出到同一个指定的目录下,所有的工程都引用改目录下的dll。
如果你同时打开了2个以上的VS.NET并相互的工程,那么,有可能在编译时,系统会报错,说指定的dll正被占用。
该种方式要做的事是:
a.指定输出目录,在工程图标上点右键->“配置属性”里的“生成”、“输出”,设置好输出路径,再在“通用属性”里把“引用路径”里的错误dll引用路径删除。
b.不把引用的dll拷贝到本地目录。把项目引用dll全选中,在属性里的“复制本地”设为false就可以了,不设的话有可能发生“变量已在多处重复定义”的错误。主要,对于UI层工程(就是能运行的工程),一定要把所有改工程引用到的dll都拷贝到其bin目录下,因为“能运行的工程”在运行时只会到bin目录下寻找dll,没有的话,就会报找不到dll的运行时错误!
这种方法的好处是各个项目组只要编译自己的dll,然后提交给配置管理员,由配置管理员统一编译整个解决方案,速度比较快。缺点是,如果某个项目组只更新了源代码文件,没有提交编译好的dll,那么解决方案里引用的就不是最新的dll。
以上2种方法可以解决dll之间引用冲突的问题!
相关文章推荐
- 关于VS.NET中多个项目的工程相互引用和多个dll引用的问题!
- 关于VS.NET中多个项目的工程相互引用和多个dll引用的问题!
- 关于VS.NET中多个项目的工程相互引用和多个dll引用的问题!
- android library工程项目之间的相互引用出现的问题
- VS 2010 的 无法调试引用的类库项目(DLL)问题(生成下面的模块时,启用了优化或没有调试信息) 解决方案
- 关于vs2012解决方案中项目DLL文件引用问题
- 关于同一工程拷贝同一项目改名引用时报错问题(maven工程)
- 关于安装vs2015后, vs2013打开项目工程失败崩溃的问题!
- 遭遇 VS 的 无法调试引用的类库项目(DLL)问题(生成下面的模块时,启用了优化或没有调试信息)
- .net 网站项目dll引用,项目引用的管理问题
- 遭遇 VS 的 无法调试引用的类库项目(DLL)问题(生成下面的模块时,启用了优化或没有调试信息)
- 关于vs中项目之间无法引用的问题
- 关于安装vs2015后, vs2013打开项目工程失败崩溃的问题!
- 多个项目工程(类库)合并成一个Dll
- 如何解决VS.NET无法调试项目问题?
- 如何解决VS.NET中应用程序编译完后改变引用位置的问题
- 关于VS2010不能正常显示asp.net的网页项目的问题
- Microsoft.DirectX.DirectSound.dll和Microsoft.DirectX.dll引用,导致项目无法调试问题
- C#调用MFC程序DLL库——MFC项目DLL生成问题、DLL引用链问题、DLL读取配置文件路径问题
- VB.net工程的引用修改问题