【发布时间】:2016-09-04 07:16:13
【问题描述】:
我正在尝试动态获取我的 VB 项目的基本路径,因为运行项目的路径会改变。
假设VB项目文件在C:\MyVBProjects\May2016\MyProject\MyApp.vbproj
我尝试使用Application.ExecutablePath, Assembly.GetExecutingAssembly().Location and Application.StartupPath
以上三个返回C:\MyVBProjects\May2016\MyProject\bin\Debug\
我也尝试使用以下代码:
Curr = Directory.GetCurrentDirectory()
Root = Directory.GetRootDirectory(Curr)
这只会返回C:\
无论如何我可以说C:\MyVBProjects\May2016\MyProject\ 吗?
我目前在 Windows 7 上使用 Visual Basic 2012。
【问题讨论】:
-
为什么exe无论如何都需要知道.sln或.proj文件的位置?
-
嘿@MattWilko,你建议使用
Directory.GetParent(Directory.GetParent(Application.ExecutablePath))吗?会不会总是返回相同的值? -
当然在VS调试时会返回一个VS相关的文件夹。但无论如何,这不是您应该存储数据的地方——您通常无权在运行时写入 EXE 文件夹。将数据存储在 AppData 文件夹 (
Users\...) 中,这就是它们的用途, -
Path.GetDirectoryName(Path.GetDirectoryName(Application.ExecutablePath)),我会重新问马特的问题:你为什么需要这个?如果您发布(或只是移动)您的应用程序,您将无法再访问该文件夹。
标签: vb.net