type.Assembly给出错误的程序集?

 用户wuhqqnrd0m 发布于 2023-02-07 20:08

我想创建一个Excel程序集的引用并使用此代码:

[Test]
public void ExcelTest()
{
    Assembly current = this.GetType().Assembly;
    Assembly excel = typeof(Microsoft.Office.Interop.Excel.Workbook).Assembly;
    Assert.AreEqual(current.FullName, excel.FullName); // Why is excel the same as current assembly?
}

[Test]
public void MscorlibTest()
{
    Assembly mscorlib = typeof(string).Assembly;
    Assert.IsTrue(mscorlib.FullName.StartsWith("mscorlib"));

    Assembly current = this.GetType().Assembly;
    Assert.AreNotEqual(mscorlib.FullName,current.FullName); // As expected
}

为什么excel和我现在的装配一样?

获得Excel程序集的好方法是什么?

在阅读文档时无法找到我的愚蠢

1 个回答
  • Excel等通过COM互操作类型到达.它是一个界面,用GUID和东西装饰.使用它时,它使用COM与正在运行的Excel应用程序进行通信.因此,您的引用不是Excel本身,而只是一个瘦COM通信层.

    COM互操作类型可以嵌入到您的程序集中,这似乎就是这种情况.您可以将其指定为项目中程序集引用的属性.

    例如,请参阅:http://msdn.microsoft.com/en-us/library/dd997297%28v=vs.110%29.aspx或http://msdn.microsoft.com/en-us/library/ee317478. ASPX

    2023-02-07 20:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有