获取相对于已发布的可执行位置

时间:2015-04-23 19:53:59

标签: vb.net

我有一个Visual Basic Studio 2008项目,我需要在3个独立的服务器环境中部署。每个环境都有不同的文件路径用于文件存储,但除此之外,程序的执行在所有环境中都完全相同。

为了实现这一点,我想指示程序查看与其自身相同的文件夹中的文本文件,以获取其环境的文件存储文件路径;然后我可以克隆相同的VB程序3次,并在存储位置发生变化时更改文本文件的内容。

在发布可执行文件之前,我可以将文本文件存储在bin-> debug文件夹中,并使用我遇到的任何VB相对路径方法(App.Path,System.IO.getcurrentdirectory,My.Application。 info.directoryPath等)访问它没有问题。但是,当我发布项目时,它们会发现程序的相对路径深埋在已安装用户的appdata中。我想访问用户运行可执行文件的服务器上的文本文件。

所以我的问题是:如何获取已发布的可执行文件位置的文件路径?我搜索了4个小时但未能找到答案。

相关代码:

dim fso as new scripting.filesystemobject
dim ts as scripting.textStream
ts = fso.opentextfile(My.Application.Info.DirectoryPath & "\HostFiles\rootDir.txt")
rootDir = ts.ReadAll
topDir = rootDir & 'rest of file storage location

1 个答案:

答案 0 :(得分:0)

如果你使用VB.Net,也许你可以试试这个:

Application.StartupPath

例如:

Dim strContent As String = IO.File.ReadAllText(Application.StartupPath & "\HostFiles\rootDir.txt")