Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Vb.net 运行应用程序的可执行目录?_Vb.net_Visual Studio 2008_Executable_Desktop Application - Fatal编程技术网

Vb.net 运行应用程序的可执行目录?

Vb.net 运行应用程序的可执行目录?,vb.net,visual-studio-2008,executable,desktop-application,Vb.net,Visual Studio 2008,Executable,Desktop Application,我需要获取应用程序运行的路径(而不是可执行文件): System.AppDomain.CurrentDomain.BaseDirectory() Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory) 当我在本地机器上用&“/images/image.jpg”运行上述语句时,它工作正常,但当我在另一台机器上安装应用程序时,它会说它找不到文件,并且有很多额外的路径信息 Dim

我需要获取应用程序运行的路径(而不是可执行文件):

System.AppDomain.CurrentDomain.BaseDirectory()
Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)
当我在本地机器上用&“/images/image.jpg”运行上述语句时,它工作正常,但当我在另一台机器上安装应用程序时,它会说它找不到文件,并且有很多额外的路径信息

Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)
我只需要应用程序运行的目录。我使用Visual Studio 2008在VB.NET中编写代码

Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)

谢谢

您可以编写以下内容:

Path.Combine(Path.GetParentDirectory(GetType(MyClass).Assembly.Location), "Images\image.jpg")
Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)

摘自

您可以使用应用程序类的静态属性。

这是google上的第一篇文章,所以我想我会发布可用的不同方法以及它们之间的比较。不幸的是,我不知道如何在这里创建表,所以它是一个图像。每个的代码都位于使用完全限定名的图像下方

Dim P As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
P = New Uri(P).LocalPath
Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)

Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)

我需要知道这一点,在我记起环境课之前来到这里

Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)
如果其他人有此问题,请使用以下命令:
Environment.CurrentDirectory

Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)
例如:

Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)
在调试模式下从Visual Studio运行时,需要:

Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)
C:\Development\solution folder\application folder\bin\debug

这正是我所需要的行为,而且非常简单明了。

我不太了解vs 2008,但当你做dirinfo时,你不会从应用程序的何处获得dirinfo。正在运行?此方法可能存在缺陷,因为程序集不一定与正在执行的程序集位于同一目录中。strPath包含文件:\\c:\\xxxxxx这不安全,例如,当使用它打开配置文件时,会导致
System.Configuration.ConfigurationErrorsException:加载配置文件时出错:不支持URI格式
此链接已过期:(.最小、最简单的解决方案,带格式!+1,谢谢。是的,这有助于通过将设置文件保留在应用程序的根路径中使应用程序真正可移植。感谢简单的解决方案!@vr\u driver这是错误的。对于可移植,应使用可执行文件的父目录,而不是当前目录,这可能不同nt。例如,如果在
%windir%
中运行的脚本使用绝对路径调用程序,它将查找“%windir%\data\”,这是错误的。@jason alls:您的示例输出不是100%正确的。您的代码会得到
C:\Development\solution folder\application folder\bin\debug\data
,因为您将其添加到
Environment.CurrentDirectory
System.AppDomain.CurrentDomain.BaseDirectory()中的ur值在控制台/服务应用程序中也能正常工作!
Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)