繁体   English   中英

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

[英]Is it possible to specify executablePath as a relative path in launchsettings.json?

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

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

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

两个问题:

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

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

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

AppContext.BaseDirectory值对应于AppDomain.BaseDirectory

是的,相对路径可以正常工作(例如.\\NServiceBus.Host.exe ,无需使用..\\转到父文件夹,然后返回同一个文件夹, .\\表示当前文件夹)。

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

我使用$(MSBuildProjectDirectory)来获取源项目的路径(在 bin 文件夹之外)。 例如,这会将我带到另一个项目,该项目是我正在运行的项目的兄弟项目:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM