问题 有没有办法在Visual Studio Code中设置环境变量?


你能帮我,如何在visual studio代码中设置环境变量?


12408
2018-02-03 08:28


起源



答案:


假设您的意思是调试会话(?),那么您可以包含一个 env 在你的财产 启动配置

如果在工作区中打开.vscode / launch.json文件或选择“调试”>“打开配置”,则应该会看到一组用于调试代码的启动配置。然后你可以添加一个 env 带字典的字符串:string。

以下是来自其标准Web模板设置的ASP.NET Core应用程序的示例 ASPNETCORE_ENVIRONMENT 至 Development :

{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"version": "0.2.0",
"configurations": [
        {
            "name": ".NET Core Launch (web)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            // If you have changed target frameworks, make sure to update the program path.
            "program": "${workspaceFolder}/bin/Debug/netcoreapp2.0/vscode-env.dll",
            "args": [],
            "cwd": "${workspaceFolder}",
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart",
            "launchBrowser": {
                "enabled": true,
                "args": "${auto-detect-url}",
                "windows": {
                    "command": "cmd.exe",
                    "args": "/C start ${auto-detect-url}"
                },
                "osx": {
                    "command": "open"
                },
                "linux": {
                    "command": "xdg-open"
                }
            },
            "env": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            },
            "sourceFileMap": {
                "/Views": "${workspaceFolder}/Views"
            }
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ]
}

14
2018-02-04 14:51



感谢您的回答。我正在开发一个节点应用程序,并使用一些环境变量,如process.env.VAR_NAME,我想在运行项目时使用变量。在这种情况下,配置env变量是否可用?它不起作用。 - Shakti Kumar Das
上面的示例在使用vscode的调试器时设置了一个env变量(它也适用于从vscode启动时的节点调试器)。也许你可以问一些更详细的问题来确定究竟什么不起作用?你是从vscode运行的吗?也许分享你正在使用的launch.json?它是否运行但是没有设置env变量或者根本没有运行?如果你想在评论中标记我(只是在评论中使用@stewart_r),我很乐意尝试提供帮助,但我相信如果你给出足够详细的问题,那么其他人也会提供很多帮助。 - Stewart_R
我觉得我已经回答了问题。如果您还在苦苦挣扎,或许可以尽可能地尝试新问题,请遵循以下指南: stackoverflow.com/help/how-to-ask 为社区提供最好的帮助机会 - Stewart_R


答案:


假设您的意思是调试会话(?),那么您可以包含一个 env 在你的财产 启动配置

如果在工作区中打开.vscode / launch.json文件或选择“调试”>“打开配置”,则应该会看到一组用于调试代码的启动配置。然后你可以添加一个 env 带字典的字符串:string。

以下是来自其标准Web模板设置的ASP.NET Core应用程序的示例 ASPNETCORE_ENVIRONMENT 至 Development :

{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"version": "0.2.0",
"configurations": [
        {
            "name": ".NET Core Launch (web)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            // If you have changed target frameworks, make sure to update the program path.
            "program": "${workspaceFolder}/bin/Debug/netcoreapp2.0/vscode-env.dll",
            "args": [],
            "cwd": "${workspaceFolder}",
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart",
            "launchBrowser": {
                "enabled": true,
                "args": "${auto-detect-url}",
                "windows": {
                    "command": "cmd.exe",
                    "args": "/C start ${auto-detect-url}"
                },
                "osx": {
                    "command": "open"
                },
                "linux": {
                    "command": "xdg-open"
                }
            },
            "env": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            },
            "sourceFileMap": {
                "/Views": "${workspaceFolder}/Views"
            }
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ]
}

14
2018-02-04 14:51



感谢您的回答。我正在开发一个节点应用程序,并使用一些环境变量,如process.env.VAR_NAME,我想在运行项目时使用变量。在这种情况下,配置env变量是否可用?它不起作用。 - Shakti Kumar Das
上面的示例在使用vscode的调试器时设置了一个env变量(它也适用于从vscode启动时的节点调试器)。也许你可以问一些更详细的问题来确定究竟什么不起作用?你是从vscode运行的吗?也许分享你正在使用的launch.json?它是否运行但是没有设置env变量或者根本没有运行?如果你想在评论中标记我(只是在评论中使用@stewart_r),我很乐意尝试提供帮助,但我相信如果你给出足够详细的问题,那么其他人也会提供很多帮助。 - Stewart_R
我觉得我已经回答了问题。如果您还在苦苦挣扎,或许可以尽可能地尝试新问题,请遵循以下指南: stackoverflow.com/help/how-to-ask 为社区提供最好的帮助机会 - Stewart_R