Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何确定已加载程序集在运行时的安装路径?_C#_.net_Dll_.net Assembly - Fatal编程技术网

C# 如何确定已加载程序集在运行时的安装路径?

C# 如何确定已加载程序集在运行时的安装路径?,c#,.net,dll,.net-assembly,C#,.net,Dll,.net Assembly,我想为加载到Excel中的C#com服务器dll创建一个单独的日志文件。 但是,当我设置记录器时,我需要告诉它assembly.dll.config文件在哪里。这个config文件位于C:\Program Files(x86)\My Company Name中,但我不知道如何在运行时以动态方式获取此路径,出于明显的原因,我不想硬编码它 我尝试使用: AppDomain.CurrentDomain.BaseDirectory+“assembly.dll.config”但这只是给了我Excel的安装

我想为加载到Excel中的C#com服务器dll创建一个单独的日志文件。 但是,当我设置记录器时,我需要告诉它
assembly.dll.config
文件在哪里。这个
config
文件位于
C:\Program Files(x86)\My Company Name
中,但我不知道如何在运行时以动态方式获取此路径,出于明显的原因,我不想硬编码它

我尝试使用:

AppDomain.CurrentDomain.BaseDirectory+“assembly.dll.config”
但这只是给了我Excel的安装目录:

C:\ProgramFiles(x86)\Microsoft Office\Office14\assembly.dll.config


是否有某种方法可以在运行时获取dll配置文件的路径?

程序集类型有以下静态方法:GetCallingAssembly、GetEntryAssembly、GetExecutionGassembly。这就是你要找的吗?是的,刚刚在这里找到:
string assemblyFolder=Path.GetDirectoryName(Assembly.getexecutinggassembly().Location)谢谢!旁注:程序集通常没有自己的“.config”文件,因此您尝试执行的操作是不寻常的,可能会被将来使用您的系统的其他人忽略。@Alexei:通常不是这样。有相当多的软件允许以DLL的形式安装插件/扩展。这些DLL有自己的配置文件。但我不知道这个行动是为了什么…:)我希望dll拥有自己的配置文件的原因是,它是一个进程内com服务器,我通过套接字从外接程序向其发送数据。因此,为了解决问题,我希望外接程序有一个日志,com服务器也有一个日志,以便更容易跟踪此客户机-服务器设置中的问题。我不确定这是否是最佳做法,但它确实将每个日志文件(即加载项或com服务器)的日志条目限制为一个“主题”,这对我来说是有意义的…:)