【发布时间】:2018-02-02 19:46:45
【问题描述】:
我正在使用 ExcelDna 编写一个 Excel 插件。我想找到安装程序集的目录,以便我可以从该目录打开文件。我过去曾成功使用过这种方法,但升级到 .NET Framework 4.7.1 后它就不起作用了。我正在尝试找出原因。
这是我的插件中当前的内容:
var codePath = Assembly.GetExecutingAssembly().CodeBase;
当我在调试器中将鼠标悬停在它上面时,它会给出正确的路径。在我执行语句codePath 后,有 mscorlib 的位置(并且使用调试器将鼠标悬停在它上面仍然有正确的位置)。我也尝试过使用typeof(<typeWithNoIneritance>).Assembly.CodeBase 和使用Location 而不是CodeBase 的变体。
接下来我应该看什么?
更新 问题可能不是 .NET Framework 更新,而是我同时进行的 ExcelDna 更新。它正在从无法提供文件位置信息的字节数组中加载文件。我能够禁用它,它现在正在工作。
【问题讨论】:
-
你能用
GetExecutingAssembly以外的东西吗?
标签: c# reflection