CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

一个 WinForm 使用第 3 方控件后的部署问题:

楼主bflovesnow()2004-11-03 11:45:34 在 .NET技术 / C# 提问

安装了一套第   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”。  
   
  这个是警告,不影响编译,但怎么来消除这个警告呢?? 问题点数:100、回复次数:15Top

1 楼citymeteor(流星)回复于 2004-11-03 12:05:14 得分 10

用安装程序打包Top

2 楼bflovesnow()回复于 2004-11-03 12:24:50 得分 0

打包到一个固定的位置么?Top

3 楼bflovesnow()回复于 2004-11-03 14:35:41 得分 0

100   分,不能浪费了啊,,,,,Top

4 楼jackie615()回复于 2004-11-03 14:40:04 得分 5

帮你顶一下  
   
   
  冬天到了,接点分过冬...  
  Top

5 楼AhBian(阿扁)回复于 2004-11-03 15:09:20 得分 10

对于通用的或共用的   DLL   ,以全局程序集部署比较合适。.Net   Framework   的基础程序集都是此方式部署的。Top

6 楼Uncommon(土匪)回复于 2004-11-03 15:33:23 得分 10

说一下我的方式:  
  1、在解决方案中新建目录ControlLibrary.//注意不是在资源管理器中  
  2、拷贝所有的DLL至此。  
  3、项目引用时,选择此位置。  
  4、打包前将EXE拷贝到bin/Debug下一起打包  
  5、分发部署。Top

7 楼xiaoslong(龙哥)回复于 2004-11-03 15:45:57 得分 5

帮你顶一下Top

8 楼sunyou(砂子)回复于 2004-11-03 16:11:57 得分 10

对于通用的或有可能被不同项目共用的   DLL   ,部署到全局程序集比较好,就像DotNet   framework本身的程序集一样,否则就要随你的可执行文件发布在一起。  
   
  在加入强名称的前提下:    
     
      运行   GACUTIL.EXE   -I   assembly.dll  
      注册到GAC中  
   
      还有就是直接拖到windos/assembly文件夹里也行Top

9 楼tylike(http://www.admiralcn.com)回复于 2004-11-03 16:14:43 得分 10

复制到本地,没有这么多麻烦事吧,我用了XTRA,一切照旧,没有这么多烦事啊Top

10 楼sunyou(砂子)回复于 2004-11-03 16:23:45 得分 15

第二个问题:  
  1、你可以引用项目而不是编译好的dll,或者保证引用源组件或目标目录的同名组件没有被使用。  
  2、你的项目依赖的组件中间接依赖了另外一个组件(ultility)的不同版本,因为ultility没有在项目引用中显式指定(所以开发环境不知道该用那个版本),检查你引用(直接或间接)的组件中哪些组件引用了ultility,统一他们引用ultility的版本(更新相应项目中的引用),或者固定ultility的版本。Top

11 楼dragonforfly(飘零)回复于 2004-11-03 16:25:54 得分 5

顶一下Top

12 楼bflovesnow()回复于 2004-11-03 20:09:23 得分 0

2   砂子:  
   
  在发布时,怎么注册到全局程序集?执行   gacutil.exe   么??  
   
  2   Uncommon(土匪)   :  
   
  那样的话,你的   exe   和   ControlLibrary   的位置差   2   级吧?Top

13 楼xurui1016(小蕊)回复于 2004-11-03 20:32:07 得分 5

学习~~~Top

14 楼bflovesnow()回复于 2004-11-04 09:54:44 得分 0

upTop

15 楼zhudaneu(番茄酱)回复于 2004-11-04 10:07:41 得分 15

你可以将你的几个项目生成路径改到同一个目录下,这样对DLL引用的相对路径是相同的.Top

相关问题

  • 在winform的datagrid控件中,如何使用checkbox控件?
  • 请问在winform里面怎样使用用户控件?
  • 在winform里使用浏览器控件(SHDocvW)的问题
  • ActiveX控件Internet该如何部署?
  • 使用CppWebBrowser控件?
  • 控件TAB的使用
  • CMonthCalCtrl控件使用
  • listBox 控件使用
  • 用户控件用使用WEB控件?
  • 如何使用控件中的控件?

关键词

  • 项目
  • 组件
  • 文件夹
  • 版本
  • 安装
  • 客户
  • dll
  • debug
  • framework
  • 引用

得分解答快速导航

  • 帖主:bflovesnow
  • citymeteor
  • jackie615
  • AhBian
  • Uncommon
  • xiaoslong
  • sunyou
  • tylike
  • sunyou
  • dragonforfly
  • xurui1016
  • zhudaneu

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo