要使用.NET类或者COM构件,要在解决方案里“引用”他们,这个“引用”的背后究竟visual studio为我们做了什么,可以手动“引用”吗?如果能,怎么做

解决方案 »

  1.   

    1.不是在解决方案里“引用”...而是在项目里“引用”2.可以...手工修改项目文件...在<ItemGroup>节加...如...
    C#
    <ItemGroup>
    <Reference Include="System" />
    <ItemGroup/>VB
    <ItemGroup>
    <Import Include="System" />
    <ItemGroup/>
      

  2.   

    c#项目文件的扩展名csproj,vb.net项目文件的扩展名vbproj。
    嗯,楼主果然学习细心,但是技术细节的学习粒度需要把握。
      

  3.   

    如楼上所说...初学者完全没有必要关心这个问题...等你对XML、配置文件和.NET编译器有了较深入的了解后再去分析项目文件格式...ps:解决方案文件又是另一种格式...
      

  4.   

    .net 调用com需要通过rcw(com 可调用包装),你在ide里引用的话,vs.net会自动为你生成可调包装
    至于不用ide的话,ls说的通过config文件是完全错误的,你需要手动生成rcw.net 引用com组件是通过com组件的tlb文件得到一个这个组件的包装程序集,tbl文件就是com内部类型描述文件,.net框架提供了tlbimp.exe负责这项操作
      

  5.   

    不要随便说别人是完全错误的...“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生成的...我没那么闲一个个去查它那些属性值和依赖项...
      

  6.   

    ls 的回复还是有错
    1、而且我想现实中也没有人为了这么做而去查Classid等等... 
    -----------------------------------
    通过tlbimp.exe 不需要知道clsid,guid ,iid
    2、如果不使用vs.net 是没有项目文件的,比如手工csc编译,你怎么办3、你看看你的项目文件里这节
    <WrapperTool> tlbimp </WrapperTool> 
    它也是调用tlbimp.exe 
      

  7.   

    呵呵...追根究底从某方面看是好事...从另一方面看未必是好事...如果想研究.NET编译器自然可以深入去了解...否则就是浪费时间...回答问题要看提问者能接受的程度及是否需要...如4楼所说...但是技术细节的学习粒度需要把握...