![]() |
1
94
你可以试试这两种方法中的一种。
告诉我,你觉得哪个更好 |
![]() |
2
199
|
![]() |
3
16
这还将通过从当前执行目录向上导航两个级别来为您提供项目目录(这不会为每个生成返回项目目录,但这是最常见的)。
当然,您希望在某种验证/错误处理逻辑中包含此内容。 |
![]() |
4
8
如果您不想知道解决方案所在的目录,则需要执行以下操作:
如果你只让
|
![]() |
5
8
如果项目正在IIS Express上运行,则
这可能是最适合各种项目的目录路径。
这是msdn定义。
|
![]() |
6
5
我也在找这个。我有一个运行hwc的项目,我想让网站远离应用程序树,但我不想把它保存在debug(或release)目录中。fwiw,接受的解决方案(以及这个解决方案)只标识运行可执行文件的目录。 为了找到那个目录,我一直在使用
|
![]() |
7
4
另一种方法
如果要获取bin文件夹的路径
也许还有更好的办法=) |
![]() |
8
4
另一个不完美的解决方案(但可能比其他一些更接近完美):
此版本将返回
当前项目'
即使当前项目不是
第一个缺陷是我跳过了所有的错误检查。这可以很容易地解决,但只有当您将项目存储在驱动器的根目录中或在路径中使用连接(该连接是解决方案文件夹的后代)时,这才是一个问题,因此这种情况不太可能发生。我不完全确定Visual Studio是否可以处理这些设置。 您可能遇到的另一个(更可能的)问题是项目名称 必须 匹配要找到的项目的文件夹名称。
您可能遇到的另一个问题是项目必须在解决方案文件夹中。这通常不是问题,但是如果你使用了
最后,如果您的应用程序将修改工作目录,那么在执行此操作之前应该存储此值,因为此值是相对于当前工作目录确定的。
当然,这也意味着你不能改变项目的默认值。
|
![]() |
9
3
在我最后完成了我关于美国公共字符串的第一个答案的润色以得到一个答案之后,我意识到你可能可以从注册表中读取一个值来获得你想要的结果。事实证明,这条路线甚至更短: 首先,必须包含Microsoft.win32命名空间,以便使用注册表:
主要代码如下:
关于此答案的注释: 我正在使用Visual Studio 2008专业版。如果您使用的是另一个版本(即2003、2005、2010等),那么您可能不需要修改子项字符串的“版本”部分(即8.0、7.0等)。 如果你用我的一个答案,如果不是问太多,那么我想知道你用了我的哪种方法,为什么。祝你好运。
|
![]() |
10
3
我也遇到过类似的情况,在没有结果的Google之后,我声明了一个公共字符串,它修改了调试/发布路径的字符串值以获取项目路径。使用此方法的一个好处是,由于它使用了当前项目的目录,因此如果您使用的是调试目录或发布目录,则不重要:
然后,您可以随时调用它,只需使用一行:
这个应该可以用 最 病例。 |
![]() |
11
3
使用此项获取项目目录(适用于我):
|
![]() |
12
3
试试这个,很简单
|
![]() |
13
2
基于 Gucu112's answer ,但对于.NET核心控制台/窗口应用程序,它应该是:
我在.NET核心窗口应用程序的XUnit项目中使用这个。 |
![]() |
14
1
我使用了以下解决方案来完成工作:
|
![]() |
15
1
尝试:
这与其他解决方案不同,也考虑了可能的x86或x64版本。 |
![]() |
16
0
最佳解决方案
其他解决方案
测试一下,appdomain.currentdomain.basedirectory在过去的项目中为我工作过,现在我得到了debug文件夹……选定的好答案不起作用!.
|
![]() |
17
0
如果您真的想确保获得源项目目录,不管bin输出路径设置为什么:
|
![]() |
18
-1
这适用于VS2017 w/sdk核心msbuild配置。 您需要使用envdte/envdte80包。 不要使用COM或Interop。任何东西…垃圾!!
|
![]() |
19
-8
directory.getParent(directory.getcurrentdirectory()).parent.parent.parent.fullname 会给你项目目录。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |