我正在构建Office使用的DLL。 Office运行时,我想确定它的位置。这可能吗?
离。在Office中运行时DLL中的代码:
// should return C:\tmp\officeaddin.dll,
// currently C:\Program Files\Microsoft Office\Office 12
MessageBox.Show(Application.StartupPath)
答案 0 :(得分:3)
即使在Office内部运行,以下内容也应该有效:
Getting the path of the current assembly
(它基本上归结为Assembly.GetExecutingAssembly().Location
,但请参阅上面的链接以获取更多详细信息。)
答案 1 :(得分:2)
如果是.NET库,则应使用Assembly.GetExecutingAssembly().Location
。
Application.StartupPath
显示主应用的路径。
答案 2 :(得分:1)
这对我有用:
Environment.CurrentDirectory
所以你可以设置一个字符串,如:
Dim location as String = Environment.CurrentDirectory & "\"
答案 3 :(得分:0)
当DLL加载时,它使用实例句柄调用DllMain。如果实现此功能,则可以记录DLL的实例句柄。然后,您可以拨打GetModuleFileName。
在.NET中,这将由您负责。有关详细信息,请参阅此question和所选答案。