Vb.net 获取相对于发布的可执行文件位置的VB 2008文件路径

Vb.net 获取相对于发布的可执行文件位置的VB 2008文件路径,vb.net,Vb.net,我有一个Visual Basic Studio 2008项目,需要在3个独立的服务器环境中部署。这些环境中的每个环境都有不同的文件存储文件路径,但除此之外,所有环境中的程序执行都完全相同 为了实现这一点,我想指示程序查看与其环境相同文件夹中的文本文件,以获取文件存储文件路径;然后,我可以将同一个VB程序克隆3次,并在存储位置发生变化时更改文本文件的内容 在发布可执行文件之前,我可以将文本文件存储在bin->debug文件夹中,并使用我遇到的任何VB相对路径方法(App.path、System.I

我有一个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

如果您使用的是VB.Net,或许您可以尝试以下方法:

Application.StartupPath
例如:


NET和VB6是两种不同的语言,因此,问题的解决方案可能会完全不同。仅使用相关标记我认为它是VB.NET(My.Application),这意味着没有理由编写
脚本.filesystemobject
。很抱歉,但我不确定你所说的“你的应用程序可能没有在那里执行IO的权限”是什么意思。在哪里?你是说在我的服务器上吗?Steve-我用这两个标记了它,因为我使用的是VB 2008,它允许从VB.NET进行包含。见下文。如果能移除downvotesI我已经试过了。它让我找到了用户appdata中的深层位置。这应该访问可执行文件的发布位置吗?这是ASP.Net中的桌面应用程序还是web应用程序(使用VB)?我相信
应用程序.StartupPath
应该给出启动EXE的位置。因此,它应该指向EXE文件.Desktop应用程序的位置。但是我尝试了Application.StartupPath,它指向了安装在用户appdata深处的exe文件,而我需要它指向我发布到服务器的exe文件。
Dim strContent As String = IO.File.ReadAllText(Application.StartupPath & "\HostFiles\rootDir.txt")