放置 Office 解决方案的目录

Directory of where Office solution has been placed

我正在尝试访问表示我的应用程序所在的当前目录路径的字符串。我有一个在 visual studio 中制作的 excel 模板,需要由当前目录(文档所在的目录)及其子目录中的文件名。我在任何地方都找不到实际有效的解决方案,我发现了一些解决方案的尝试:get path for my .exe 和其他各种方法,但都不起作用。我目前让用户输入所需的路径,但我想自动找到路径或找到收集这些名称的替代方法。

这取决于您分发解决方案的方式。 Office 加载项和模板在通过标准 ClickOnce 模式分发时,最终位于位于 AppData 文件夹某处的一个隐名文件夹(在另一个隐名文件夹内)。您将无法使用常规方法获取当前存在的应用程序的路径,因为它们很可能 return 是 EXCEL.EXE 本身的路径。 This SO post 提供了一种在 VSTO 解决方案中获取当前文件夹的好方法。

或者您可以考虑使用 MSI 分发您的 template/add-in。这是一个较长的路径并且有很多注意事项,但您最终会在 Program Files 文件夹中安装 add-in/template。

我不太熟悉 C#,但这是我在 vb 中所做的:



    Dim dir as string = Application.StartupPath

您可以在 excel VBA 中做同样的事情:



    Dim dir as string = Application.ActiveWorkbook.Path