关于部署:部署dll后如何在C#中获取安装目录

 2022-02-12 

How to get the installation directory in C# after deploying dll's

在从不同文件夹中的应用程序调用的 dll (C#) 中工作时,是否有一些聪明的方法来检索安装路径?

我正在为应用程序开发插件。我的加载项是用 C# 编写的。将使用的应用程序是用 C 编写的,需要在评估期间编译一些东西,所以我有一个 C dll 的中间步骤,它处理与 C# 的互操作业务,并且只向外显示一个 C 可以使用的干净接口。

我部署的是一组 .dll 和一个用于 C 部分的 .lib 和 .h(有时需要静态绑定)。

当尝试设置并从 C# dll 打印出当前目录信息时:

1
        Console.WriteLine(Directory.GetCurrentDirectory());

或:

1
        Console.WriteLine(System.Environment.CurrentDirectory);

我得到了可执行文件的路径。

那么……再一次,我如何获得我的 dll 的安装路径?

编辑:他们都工作!感谢大家的快速回复!


我想你想要的是 Assembly.GetExecutingAssembly().Location.


以下两种方式之一:

1
2
3
using System.IO;
using System.Windows.Forms;
string appPath = Path.GetDirectoryName(Application.ExecutablePath);

或者:

1
2
3
4
using System.IO;
using System.Reflection;
string path = Path.GetDirectoryName(
Assembly.GetAssembly(typeof(MyClass)).CodeBase);

试试这个:

1
typeof(TypeInMyModule).Assembly.Location