代码之家  ›  专栏  ›  技术社区  ›  jpierson

C#/.net4.0中新的NoPIA和类型等价特性是否意味着Microsoft.mshtml.dll 不再需要了

  •  4
  • jpierson  · 技术社区  · 15 年前

    Microsoft.mshtml.dll

    我很好奇 NoPIA Type Equivalence 特点和 dynamic Microsoft.mshtml.dll

    我的理解是,我们应该能够将通常自动生成的类型嵌入到COM类型的额外程序集中,比如visualstudio的MapPoint控件。我不知道这是否也适用于 Microsoft.mshtml.dll Microsoft.mshtml.dll

    2 回复  |  直到 15 年前
        1
  •  7
  •   Hans Passant    15 年前

    当然,这就是一切。将解决方案导入到VS2010的“项目+属性”、“应用程序”选项卡中,将目标框架更改为.NET 4.0。在“解决方案资源管理器”窗口中打开“引用”节点,选择Microsoft.mshtml 引用并将其“嵌入互操作类型”属性设置为True。对于目标为4.0的新项目,它将自动启用

    这适用于您在COM选项卡上选择的任何COM类型库以及您在.NET选项卡中选择的任何PIA。类型库只在构建时需要,您不必再部署互操作库或pia。当然,实际的COM服务器必须仍然存在于目标计算机上。

    新的dynamic关键字和可选的和命名的参数特性并不相关,它们只是在使用设计用于脚本语言的COM服务器时更容易编写更干净的代码。Mshtml已经相当干净了,officeinterop就是最好的例子。

        2
  •  2
  •   Richard    15 年前

    C#4.0我们是否可以期望,如果我们升级,我们可以删除对Microsoft.mshtml.dll 装配?

    您仍然需要依赖项来构建程序集,但在运行时不需要依赖项(而且VS不会将其复制到输出目录)

    如果您已经将MSHTML引用的属性中的“嵌入互操作类型”设置设置为“True”。