我想用一个可执行文件运行我的代码,该可执行文件是NuGet软件包的一部分。因此,exe在我的用户配置文件目录中。因此,该文件如下所示:
{
"profiles": {
"UITests": {
"commandName": "Executable",
"executablePath": "C:\\Users\\MarkKharitonov\\.nuget\\packages\\nunit.consolerunner\\3.9.0\\tools\\nunit3-console.exe",
"commandLineArgs": "@params.txt --where:\"method == LoginSuccessWithCorrectPassword\" ..\\..\\UITests\\bin\\Debug\\net472\\UITests.dll",
"workingDirectory": "C:\\DFDeploymentSmokeTests\\LocalTestProfiles\\qa56"
}
}
}
是否可以引用环境变量UserProfile并使用它代替C:\\Users\\MarkKharitonov
?
编辑1
我根本不希望我的名字出现在文件中。这样,只要其他人的源代码位于同一文件夹中,其他人就可以重用它,这不是问题。但是,只要我必须使用我的名字引用nuget包的路径,该文件就不能提交给源控件。
答案 0 :(得分:0)
您可以通过
获取环境变量Environment.GetEnvironmentVariable("ASPNETCORE_PATH")
或
如果在配置中添加.AddEnvironmentVariables (Reference)
var builder = new ConfigurationBuilder()
....
.AddEnvironmentVariables();
Configuration = builder.Build();
然后可以通过
获取环境变量Configuration["ASPNETCORE_PATH"]
PS编辑:我可以在哪里放置环境变量以便被IConfiguration读取?
答案 1 :(得分:0)
通过大量实验,它似乎在某种程度上取决于正在运行的命令。更准确地说,命令在哪个 shell 中运行。
如果它在 cmd.exe 中,%VARIABLE%
应该可以工作。
如果它在 powershell 下运行,那么在双引号可扩展字符串中时它将是 $env:VARIABLE
或 ${env:VARIABLE}
。
我会建议以下内容。
{
"profiles": {
"UITests": {
"commandName": "Executable",
"executablePath": "${env:UserProfile}\\.nuget\\packages\\nunit.consolerunner\\3.9.0\\tools\\nunit3-console.exe",
"commandLineArgs": "@params.txt --where:\"method == LoginSuccessWithCorrectPassword\" ..\\..\\UITests\\bin\\Debug\\net472\\UITests.dll",
"workingDirectory": "C:\\DFDeploymentSmokeTests\\LocalTestProfiles\\qa56"
}
}
}
假设 UserProfile 是 C:\Users\MarkKharitonov