社区
C#
帖子详情
关于装配件的一个问题,有经验的兄弟进来讨论一下
chijingde
2005-04-18 05:47:38
我的共享装配件里调用了一个系统的dll(CDOsys.dll)
这玩意应该是个私有的装配件,
因为他在Debug目录创建了一个副本(Interop.CDO.dll)
并且在IDE里显示没有强名,最后导致了我没法编译……
如果我只做成私有的装配件,就没问题,一切正常,我现在要做成共享的,咋办?
能把它变成共享的吗?或者是还有其他的办法?
希望有经验的兄弟指点一下
...全文
201
26
打赏
收藏
关于装配件的一个问题,有经验的兄弟进来讨论一下
我的共享装配件里调用了一个系统的dll(CDOsys.dll) 这玩意应该是个私有的装配件, 因为他在Debug目录创建了一个副本(Interop.CDO.dll) 并且在IDE里显示没有强名,最后导致了我没法编译…… 如果我只做成私有的装配件,就没问题,一切正常,我现在要做成共享的,咋办? 能把它变成共享的吗?或者是还有其他的办法? 希望有经验的兄弟指点一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lovvver
2005-04-19
打赏
举报
回复
学习啊,帮顶一下~
chijingde
2005-04-19
打赏
举报
回复
还是不行……
一样的错误……
chijingde
2005-04-19
打赏
举报
回复
回复人: Sunmast(速马/Maybe I'm Amazed) ( ) 信誉:125 2005-04-19 11:44:00 得分: 0
嗯,这样,那么先按照我的那个方法为CDO生成强名的Interop.CDO.dll
使用Gacutil /i Interop.CDO.dll注册这个dll到全局缓冲
到VS.NET引用这个dll(此时这个dll不会被复制到本地,因为其具有强名称)
ADODB.dll并不是COM,不要管它,也不需要interop过程
有道理,试下
chijingde
2005-04-19
打赏
举报
回复
CSDN刚才咋了:(
我试着单独引入ADODB
现在都有强名了
但是把编译好assemblyinfo.dll模块后
编译我的主单元
csc /t:library /addmodule:assemblyinfo.dll MMail2.cs
MMail2.cs(225,4): error CS0246: The type or namespace name 'ADODB' could not be
found (are you missing a using directive or an assembly reference?)
MMail2.cs(180,4): error CS0246: The type or namespace name 'MCDO' could not be
found (are you missing a using directive or an assembly reference?)
:(
速马
2005-04-19
打赏
举报
回复
此时这个dll不会被复制到本地,因为其具有强名称
>>>
此时这个dll不会被复制到本地,因为它已被注册到全局缓冲
速马
2005-04-19
打赏
举报
回复
嗯,这样,那么先按照我的那个方法为CDO生成强名的Interop.CDO.dll
使用Gacutil /i Interop.CDO.dll注册这个dll到全局缓冲
到VS.NET引用这个dll(此时这个dll不会被复制到本地,因为其具有强名称)
ADODB.dll并不是COM,不要管它,也不需要interop过程
chijingde
2005-04-19
打赏
举报
回复
因为CDO里引用了ADODB阿
生成的代理后又会自动生成一个ADODO
CDO确实可以给它强名
但现在生成的这个ADODB却没有强名了-_-!
不过以前是ADODB有强名,而且我在高速缓冲里能看到它
速马
2005-04-19
打赏
举报
回复
CDO是COM组件,不然VS.NET也不会给你生成Interop.CDO.dll
你这里和ADODB有什么关系?
chijingde
2005-04-19
打赏
举报
回复
速马老兄
好像不行啊……
这样生成的连本来有强名的ADODB现在也没强名了:(
而且查了一下资料,Tlbimp是不是只能用在COM上阿?
CDOsys好像不是个COM :(
chijingde
2005-04-19
打赏
举报
回复
速马老兄
十分感谢,哈哈哈
下次到D版,我请你吃鸡腿 :D
chijingde
2005-04-19
打赏
举报
回复
哈哈哈哈哈哈
终于搞定了
用命令行生成强名
然后在VS.NET里编译成装配件
再用命令行加入到缓冲区
最后再用命令行转成带有COM Services的装配件
在VS和VB下调用成功
操,我真TMD是个天才
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
速马
2005-04-19
打赏
举报
回复
VS.NET自己不能完成,但是你可一给他写编译前事件和编译后事件处理脚本完成
chijingde
2005-04-19
打赏
举报
回复
编译器设置?
更方便的VS.NET?
那些命令行的功能能通过VS.NET完成吗?比如说模块的加载,安装到高速缓冲……
速马
2005-04-19
打赏
举报
回复
我现在觉得这个根本就不是强名的问题
你的编译器设置不对(为什么不用更方便的VS.NET)
chijingde
2005-04-19
打赏
举报
回复
如果程序集B引用了A
要把B设置为强名
那么得先把A设置为强名
================================================
我就是这么做的阿……
可还是不行,总是提示The type or namespace name 'XXX'could not be
found (are you missing a using directive or an assembly reference?)
这样的错误
还有什么其他值得注意的?
速马
2005-04-19
打赏
举报
回复
如果程序集B引用了A
要把B设置为强名
那么得先把A设置为强名
见《.NET框架程序设计(修订版)》
chijingde
2005-04-19
打赏
举报
回复
我测试了一下
简单的两个library也抱错:(
越来越感觉是低级错误,哪位知道给俺醍醐灌顶一下
速马老兄呢?咋不关注俺了咧?
using System;
namespace Class1
{
public class Class1
{
public int i;
public string s;
public int a;
public Class1()
{
}
public void AAA()
{
i=100;
s="111111111111111";
a=50;
}
public void AAA(int ii,string ss,int aa)
{
i=ii;
s=ss;
a=aa;
}
}
}
==========================================================================================
using System;
namespace Class2
{
public class Class2
{
public Class2()
{
}
public void BBB()
{
Class1.Class1 c=new Class1.Class1();
c.AAA();
System.Windows.Forms.MessageBox.Show(c.s);
c.AAA(50,"AAAAA",1000);
System.Windows.Forms.MessageBox.Show(c.s);
}
}
}
就这样,class1.dll 和 class2.dll 竟然也不行……
我的操作步骤是
1.SN 生成一个强名
2.修改AssemblyInfo.cs,设置强名
3.把AssemblyInfo.cs编译成模块
4.把AssemblyInfo.dll加到Class2.cs并生成Class2.dll
Class1步骤也是如此,并且没啥问题
但是class2引用了Class1,所以编译的时候又说找不到Class1,我把Class1设成共享的也不行
晕死了
到底哪里不对啊?
chijingde
2005-04-19
打赏
举报
回复
速马
问个问题
搞不好俺犯了个低级错误,跟CDO这玩意没关系
做共享装配件的时候,如果有多个组件,怎么统一起来?
比如说B引用了A
想把B做成共享的,这是A应该怎么处理?
不应该说组件
应该说装配件
A和B都是装配件
私有的没啥问题
直接用就行了
如果我想把B做成共享的
A怎么办?他还是B的私有装配件?还是也要做成共享的?还是其他?
速马
2005-04-19
打赏
举报
回复
没道理嗯,我这里是对的
chijingde
2005-04-19
打赏
举报
回复
哈
回去试一下
先谢了
加载更多回复(6)
不求人也会
装
系统
找熟人
装
吧,还要等人家有空!找陌生人
装
吧,又怕别人糊弄;如果自己会
装
系统,那才叫完美!嘿嘿,说学咱就学,以后再也不怕电脑坏了,轻轻松松
装
系统!本课程面向零基础学员,内容包括:下载安
装
Ghost软件、下载...
分布式与微服务——Iaas,Paas和Saas、单体应用和缺点、微服务概念、传统 分布式 SOA 架构与微服务架构的区别、微服务实战、什么是RPC、CAP定理和BASE理论、唯一ID生成、实现分布式
iass基础设施服务(组
装
机):你买了一大堆电脑
配件
,cpu 主板…然后组
装
完成后
装
上系统就可以上网。还要自己提供场地 环境paas平台即服务(品牌机):买回来开机就行。需要自己提供场地,和环境(电源)saas软件即...
AI咆哮后,
一个
赚大钱的AI+Data公司估值居然430亿美元?
念出Databricks,发五个音节,短促干脆,给人以一种美国湾区科技的既视感,很高级,有排面。这又是
一个
美元堆上的新故事。(一)营收多少?增速多快?清晨的一缕阳光从窗户懒懒地洒
进来
,Data...
怎样白手起家,实现成功创业?(绝对有料的大实话)系列之一
至于怎样白手起家,开创自己的事业这个讨论,似乎有太多讨论这方面的帖子,我也看了太多,但是由于有多年创业实战的经历,感觉因为市场有变数,心理有变化,任何模式可能都是相对的,针对你能成功,针对他可能没有...
我是
一个
黑客
我是
一个
黑客 这几天眼睛要好受些了,因为刚买了
一个
15’的液晶显示器。也许你会觉得我以前的那个特丽珑的17"的显示器应该很威风才对。呵呵,对
一个
整天15个小时以上坐在显示器面前,距离不超过30厘米的人来说。那个...
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章