一个 WinForm 使用第 3 方控件后的部署问题:
安装了一套第 3 方的东东,我们暂且简称它们为 A
偶的一个解决方案的几个项目都使用了 A
1、
目前引用它们的方式不是复制到本地
这样在发布时,客户那边也需要安装 A
这样的话一方面偶感觉比较麻烦
另一个方面又担心一个可能是比较幼稚的问题
就是,如果客户端是 XP 或 Win98 的话,偶把路径问题出错
因为偶的开发机子是 Win2K,它们的系统目录不同,也就是 DLL 的位置不同了
不知在引用 framework 中的 dll 或者是 A 时,这样的路径是 .NET 是怎样计算的?
会不是出现我所担心的问题??
2、
如果采用复制到本地的方式
则每个项目的 bin/debug 下都会有相同的 .dll
这样的发布项目时,客户那边不需要安装 A 就可以使用了
问:这样做是否妥当??
3、
考虑在解决方案中再建立一个 DLL 的文件夹
把 A 的所有 dll 都复制到下面
然后项目中不采用复制 A 的方式,而是直接调用的是 DLL 文件夹下的 A
但这样在发布时,.exe 文件是否和就要和要引用的 A 的位置差 2 个级别了?
其实我的问题可以简单地总结为:多个项目使用第 3 方控件时,开发时怎么样部署它们的位置比较方便发布程序??
还有 2 个问题:
1、一个项目引用另一个 dll 类库项目时,如果引用的是 bin/debug 下的 dll,经常出现“正在使用,无法复制。。。”这样的错误而无法编译,相反引用 obj/debug 下的 dll 时就无此问题。
2、同上情况下的另一个常出错的问题就是“警告: 不能将项目“genFrame”中的依赖项“ultility, Version=1.0.1763.17568, Culture=neutral”复制到运行目录,因为它将改写引用“ultility, Version=1.0.1763.17953, Culture=neutral”。
这个是警告,不影响编译,但怎么来消除这个警告呢??