launchsettings.json中是否可以将executablePath指定为相对路径?

6

我正在查看一位前同事编写的项目,在Properties文件夹下的launchSettings.json文件中,他有以下内容:

{
  "profiles": {
    "ProjectName": {
      "commandName": "Executable",
      "executablePath": "C:\\code\\project\\\\src\\project.name\\bin\\Debug\\net471\\NServiceBus.Host.exe"
    }
  }
}

这里的executablePath是指本地存储库所在路径。但是,其他团队成员将没有相同的本地路径。这很正常,我们不应强制要求他们使用相同的路径。

两个问题:

  • 它是什么,有什么作用?
  • 它可以是相对路径吗?-> 可以是

-> "..\net471\NServiceBus.Host.exe"


1
当您尝试使用相对路径时发生了什么? - ProgrammingLlama
1
我猜那只是有效的... :D - Spikee
2个回答

4

是的,相对路径可以直接使用(例如:.\NServiceBus.Host.exe)而不需要通过..\返回上级目录然后再回到当前文件夹,.\表示当前文件夹。

Properties/launchSettings.json也可以处理所有的MSBuild保留和公共属性

我使用了$(MSBuildProjectDirectory)来获取源项目的路径(在bin文件夹之外)。例如,这将带我进入另一个与我正在运行的项目相邻的项目:

"profiles": {
  "MyApp": {
    "commandName": "Project",
    "commandLineArgs": "$(MSBuildProjectDirectory)/../Tests",
  }
}

0

在您的代码中,您可以使用AppContext.BaseDirectory并从launchsettings.json文件连接链接。

AppContext.BaseDirectory值对应于AppDomain.BaseDirectory


那个文档页面非常简洁,一个实际的例子会让你的回答更容易理解。 - Spikee
AppContext.BaseDirectory属性返回当前主可执行文件所在的目录。尝试使用并检查你得到了什么? - Muhammad Saqlain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接