关于Visual Studio中的“引用”.NET类和COM组件的问题 要使用.NET类或者COM构件,要在解决方案里“引用”他们,这个“引用”的背后究竟visual studio为我们做了什么,可以手动“引用”吗?如果能,怎么做 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.不是在解决方案里“引用”...而是在项目里“引用”2.可以...手工修改项目文件...在<ItemGroup>节加...如...C#<ItemGroup><Reference Include="System" /><ItemGroup/>VB<ItemGroup><Import Include="System" /><ItemGroup/> c#项目文件的扩展名csproj,vb.net项目文件的扩展名vbproj。嗯,楼主果然学习细心,但是技术细节的学习粒度需要把握。 如楼上所说...初学者完全没有必要关心这个问题...等你对XML、配置文件和.NET编译器有了较深入的了解后再去分析项目文件格式...ps:解决方案文件又是另一种格式... .net 调用com需要通过rcw(com 可调用包装),你在ide里引用的话,vs.net会自动为你生成可调包装至于不用ide的话,ls说的通过config文件是完全错误的,你需要手动生成rcw.net 引用com组件是通过com组件的tlb文件得到一个这个组件的包装程序集,tbl文件就是com内部类型描述文件,.net框架提供了tlbimp.exe负责这项操作 不要随便说别人是完全错误的...“vs.net会自动为你生成可调包装”难道不是修改项目文件?我给楼主举例没有用COM...只是懒得去解释COMReference那些属性...而且我想现实中也没有人为了这么做而去查Classid等等...但是...决不表示手工修改项目文件不可以...例...<ItemGroup> <COMReference Include="MediaPlayer"> <Guid>{22D6F304-B0F6-11D0-94AB-0080C74C7E95}</Guid> <VersionMajor>1</VersionMajor> <VersionMinor>0</VersionMinor> <Lcid>0</Lcid> <WrapperTool>tlbimp</WrapperTool> <Isolated>False</Isolated> </COMReference> <COMReference Include="stdole"> <Guid>{00020430-0000-0000-C000-000000000046}</Guid> <VersionMajor>2</VersionMajor> <VersionMinor>0</VersionMinor> <Lcid>0</Lcid> <WrapperTool>primary</WrapperTool> <Isolated>False</Isolated> </COMReference></ItemGroup>当然这也是IDE生成的...我没那么闲一个个去查它那些属性值和依赖项... ls 的回复还是有错1、而且我想现实中也没有人为了这么做而去查Classid等等... -----------------------------------通过tlbimp.exe 不需要知道clsid,guid ,iid2、如果不使用vs.net 是没有项目文件的,比如手工csc编译,你怎么办3、你看看你的项目文件里这节<WrapperTool> tlbimp </WrapperTool> 它也是调用tlbimp.exe 呵呵...追根究底从某方面看是好事...从另一方面看未必是好事...如果想研究.NET编译器自然可以深入去了解...否则就是浪费时间...回答问题要看提问者能接受的程度及是否需要...如4楼所说...但是技术细节的学习粒度需要把握... UDP累加和校验如何写(C#) 通俗的解释下.trim() 如何用正则表达式获取字符串中的子串 C#调用C++ DLL,怪事 一个有关模拟扑克发牌的操作,望有高手相助 自定义指针问题 关于div的显示问题 对windows窗体和wpf的选择 [Serializable] 是什么意思??? 如何实现像VS帮助中的索引那样的功能?随着敲入的字符,内容也变化? 自己制作的浏览器如何打开新页面? 用C#将ppt转换成html
C#
<ItemGroup>
<Reference Include="System" />
<ItemGroup/>VB
<ItemGroup>
<Import Include="System" />
<ItemGroup/>
嗯,楼主果然学习细心,但是技术细节的学习粒度需要把握。
至于不用ide的话,ls说的通过config文件是完全错误的,你需要手动生成rcw.net 引用com组件是通过com组件的tlb文件得到一个这个组件的包装程序集,tbl文件就是com内部类型描述文件,.net框架提供了tlbimp.exe负责这项操作
<ItemGroup>
<COMReference Include="MediaPlayer">
<Guid>{22D6F304-B0F6-11D0-94AB-0080C74C7E95}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
<COMReference Include="stdole">
<Guid>{00020430-0000-0000-C000-000000000046}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
</ItemGroup>
当然这也是IDE生成的...我没那么闲一个个去查它那些属性值和依赖项...
1、而且我想现实中也没有人为了这么做而去查Classid等等...
-----------------------------------
通过tlbimp.exe 不需要知道clsid,guid ,iid
2、如果不使用vs.net 是没有项目文件的,比如手工csc编译,你怎么办3、你看看你的项目文件里这节
<WrapperTool> tlbimp </WrapperTool>
它也是调用tlbimp.exe