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”
是的,相对路径就可以了(例如.\NServiceBus.Host.exe,不需要转到父文件夹..\,然后返回同一文件夹,.\即当前文件夹)。
并且Properties/launchSettings.json还可以处理所有MSBuild 保留的和众所周知的属性。
我曾经$(MSBuildProjectDirectory)获取源项目的路径(在 bin 文件夹之外)。例如,这将我带到另一个项目,它是我正在运行的项目的同级项目:
"profiles": {
"MyApp": {
"commandName": "Project",
"commandLineArgs": "$(MSBuildProjectDirectory)/../Tests",
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在代码中使用AppContext.BaseDirectory并连接文件中的链接launchsettings.json。
AppContext.BaseDirectory值对应于AppDomain.BaseDirectory