1. 项目中引用了外部程序集,编译时怎么指定所引用的私有程序集的复制的目标路径?
2. 所引用的程序集如果有其它的依赖(比如A.DLL引用了B.DLL),当项目中添加该程序集(A.DLL)的引用,那么编译时是不是一并把A和B都复制到项目目录下?如果是,那么项目引用了A且同时又直接引用了B,那么是否必须保证直接引用的B的版本与A所引用的版本一致,否则就会导致A出错?在这种情况下,如果想使用B的高级版本该怎么办?
3. 如果项目中引用了共享程序集(编译时其副本不会复制到项目目录下),那么在把项目部署到其它机器时其它机器没有安装该共享程序集怎么办?难道要每部署一台就安装一次吗?
1.确保 程序集版本一致的方法有2个
a.同一个dll只保留一份 且只放在固定的位置
b.引用生成dll的项目
2.dll 的引用 如果封装的好的话 不会吧dll一起放在bin中 bin只是web 或者其他顶级项目的引用
3.关于共享程序集 这个问题 是微软策略问题 如果希望 程序集脱离环境依赖 那么就应该将 dll发布到 bin目录下 不管这个程序集是不是共享
原因为:
微软的dll查找策略 是先查找 bin目录底下的 dll bin目录下没有 就到环境中去找 也就是你说的共享程序集