设计器程序集的加载问题.

shangfc 2007-02-08 07:35:47
本人设计的解决方案中包含两个项目,1个是控件程序集(A),另一个是相关的设计器程序集(A.Design),都有强名称。
A.Design引用了A,而在A中通过使用DesignerAttribute(string,type)来指定设计器是,string中包含了设计器的完整名称,形式如"classname,assembly,language,key=030203220200xxx".
问题是这样的话,在启动工程(一个exe程序)中无法加载设计器,说找不到设计器,将A.Design.dll放入Gac也不管用。请问A.Design.Dll这个程序集应该放在哪个目录下?照理说启动工程中是不需要引用A.Design.Dll的。
另一个问题我做的控件程序集(A)放入GAC后,为什么VS2005的"添加引用/.net"对话框中仍然没有将它列出来?工具箱中的"选择项/.net组件"中也没有列出来。是否需要注册之类的工作?如果是这样今后发布要怎么办?附带一下,我的程序集加入GAC后连Reflector(反编译工具)也找不到。
各位做控件的都怎么做设计时测试?有什么好办法大家交流一下。
分不够另开贴。
谢谢大家。
...全文
365 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mapserver 2007-02-09
  • 打赏
  • 举报
回复
A:把A.design.dll放在exe下试下,正常的情况下,runtime时可以不要designtime的设计器。
B:关于加入GAC,你的理解方式可能有些问题。
比如有C:\A.dll,通过gacutil加入GAC中,在“添加引用”中是没有A.dll的,而是应该“浏览”来选择C:\A.dll来实现添加引用。

组件、控件的调试有两种方法:
1、http://www.cnblogs.com/mapserver/articles/345918.html
2、比如你的Solution叫Demo1,Demo1有控件工程叫A,在Solution Explorer里选中A工程,
a:点右键选“Properties”——〉“Debug”——〉“Start Action”——〉“Start external program”选择“C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv.exe(我的vs安装在C盘下,如果你的不安装在C盘下,请改相应的路径)”
b:再把A设为启动项目
c:F5启动Debug
d:打开Demol

kason_j 2007-02-09
  • 打赏
  • 举报
回复
有情帮顶
lovehongyun 2007-02-09
  • 打赏
  • 举报
回复
up
真相重于对错 2007-02-09
  • 打赏
  • 举报
回复
一般一个设计器只针对一个控件,所以我都是把设计器和控件都放在一个项目下,感觉如果分开会有循环引用的问题。
设计时调试,可以另开一个vs.net ,用附加进程的方式来调试
shangfc 2007-02-09
  • 打赏
  • 举报
回复
感谢大家的回答。
我想hdt(倦怠)的说法是有问题的。在.net Framework 2.0中,所有的控件的设计器都是存放在System.Design.Dll这个程序集中,而在控件这边则用DesignerAttribute(string)这个属性指定设计器。这可以通过Reflector来查看。
但我同样做的情况下,设计时却会找不到设计器。
至于控件的调试方法,看来也和我的差不多。但是这没有办法调试找不到设计器的情况。
谁还有什么好招吗?

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧