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

Spi*_*kee 7 .net c# nservicebus

我正在查看一位前同事编写的项目,在文件中launchSettings.json(在“属性”下)他有以下内容:

{
  "profiles": {
    "ProjectName": {
      "commandName": "Executable",
      "executablePath": "C:\\code\\project\\\\src\\project.name\\bin\\Debug\\net471\\NServiceBus.Host.exe"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

executablePath是他的本地存储库所在的路径。但当然,其他团队成员不会有相同的本地路径。这很好,而不是我们应该强制执行的。

两个问题:

  • 为什么它在那里,它的目的是什么?
  • 这可以是相对路径吗?->是的,可以

->“..\net471\NServiceBus.Host.exe”

Mar*_*nze 5

是的,相对路径就可以了(例如.\NServiceBus.Host.exe,不需要转到父文件夹..\,然后返回同一文件夹,.\即当前文件夹)。

并且Properties/launchSettings.json还可以处理所有MSBuild 保留的和众所周知的属性

我曾经$(MSBuildProjectDirectory)获取源项目的路径(在 bin 文件夹之外)。例如,这将我带到另一个项目,它是我正在运行的项目的同级项目:

"profiles": {
  "MyApp": {
    "commandName": "Project",
    "commandLineArgs": "$(MSBuildProjectDirectory)/../Tests",
  }
}
Run Code Online (Sandbox Code Playgroud)


Muh*_*ain 0

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

AppContext.BaseDirectory值对应于AppDomain.BaseDirectory