为什么环境变量参考不适用于 MS Build Target?

Why doesn't environment variable reference work for MS Build Target?

我有以下配置,但是 ASPNETCORE_ENVIRONMENT 变量没有进入 CsProj 配置。

.vscode/launch.json

{
    // 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",
            "program": "${workspaceFolder}/Web/bin/Debug/net5.0/Web.dll",
            "args": [],
            "cwd": "${workspaceFolder}/Web",
            "stopAtEntry": false,
            // Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser
            "serverReadyAction": {
                "action": "openExternally",
                "pattern": "\bNow listening on:\s+(https?://\S+)"
            },
            "env": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            },
            "sourceFileMap": {
                "/Views": "${workspaceFolder}/Views"
            }
        }
    ]
}

.vscode/tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/Web/Web.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        },
        {
            "label": "publish",
            "command": "dotnet",
            "type": "process",
            "args": [
                "publish",
                "${workspaceFolder}/Web/Web.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        },
        {
            "label": "watch",
            "command": "dotnet",
            "type": "process",
            "args": [
                "watch",
                "run",
                "${workspaceFolder}/Web/Web.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        }
    ]
}

Web/Properties/launchSettings.json

{
    "iisSettings": {
        "windowsAuthentication": false,
        "anonymousAuthentication": true,
        "iisExpress": {
            "applicationUrl": "http://localhost:15269",
            "sslPort": 44386
        }
    },
    "profiles": {
        "IIS Express": {
            "commandName": "IISExpress",
            "launchBrowser": true
        },
        "Web": {
            "commandName": "Project",
            "dotnetRunMessages": "true",
            "launchBrowser": true,
            "applicationUrl": "https://localhost:5001;http://localhost:5000"
        }
    }
}

Web/Web.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">
    <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework>
    </PropertyGroup>
    <Target Name="PreCompile" BeforeTargets="Build">
        <Exec Command="$(MSBuildStartupDirectory)/node_modules/.bin/gulp build --environment $(ASPNETCORE_ENVIRONMENT)" />
    </Target>
</Project>
// gulpFile.ts
export { default as build } from './build/Sass';

// build/Sass.ts
import type { TaskFunction } from 'gulp';
import { dest, src } from 'gulp';
import * as fiber from 'fibers';
import * as sass from 'gulp-dart-sass';


const environment = process.argv[3] === '--environment' ? process.argv[4] : 'Staging';


const task: TaskFunction = () => {

    console.log(`Hello!!!!! ${environment}`);

    console.log(process.env);

    return src('./Web/themes/**/*.sass')
        .pipe(sass({ fiber }))
        .pipe(dest('./Web/wwwroot/themes'));
};


export default task;

输出

 Executing task: dotnet build /.../Web/Web.csproj /property:GenerateFullPaths=true /consoleloggerparameters:NoSummary <

Microsoft (R) Build Engine version 16.8.0+126527ff1 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  All projects are up-to-date for restore.
  Web -> /.../Web/bin/Debug/net5.0/Web.dll
  Web -> /.../Web/bin/Debug/net5.0/Web.Views.dll
  [17:50:28] Requiring external module ts-node/register
  [17:50:28] Working directory changed to ~/...
  [17:50:30] Using gulpfile ~/.../gulpfile.ts
  [17:50:30] Starting 'build'...
  Hello!!!!! undefined
  {
    TERM_PROGRAM: 'vscode',
    TERM: 'xterm-256color',
    SHELL: '/bin/zsh',
    TMPDIR: '/var/folders/pf/rmb77nvd2t99vjmq9z1xc6100000gn/T/',
    TERM_PROGRAM_VERSION: '1.52.1',
    DOTNET_HOST_PATH: '/usr/local/share/dotnet/dotnet',
    ORIGINAL_XDG_CURRENT_DESKTOP: 'undefined',
    LC_ALL: 'en_US.UTF-8',
    DOTNET_CLI_TELEMETRY_SESSIONID: 'f3d95a71-5185-4c74-b373-da49d9b6f174',
    USER: 'roydukkey',
    COMMAND_MODE: 'unix2003',
    MSBuildLoadMicrosoftTargetsReadOnly: 'true',
    SSH_AUTH_SOCK: '/private/tmp/com.apple.launchd.JpMQQSNA9S/Listeners',
    __CF_USER_TEXT_ENCODING: '0x1F5:0x0:0x0',
    PATH: '/usr/local/php5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands',
    __CFBundleIdentifier: 'com.microsoft.VSCode',
    PWD: '.../Web',
    LANG: 'en_US.UTF-8',
    MSBuildSDKsPath: '/usr/local/share/dotnet/sdk/5.0.101/Sdks',
    XPC_FLAGS: '0x0',
    XPC_SERVICE_NAME: '0',
    SHLVL: '1',
    HOME: '...',
    VSCODE_GIT_ASKPASS_MAIN: '/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js',
    LOGNAME: 'roydukkey',
    VSCODE_GIT_IPC_HANDLE: '/var/folders/pf/rmb77nvd2t99vjmq9z1xc6100000gn/T/vscode-git-8f8e32c0ee.sock',
    GIT_ASKPASS: '/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh',
    VSCODE_GIT_ASKPASS_NODE: '/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer)',
    COLORTERM: 'truecolor',
    MSBuildExtensionsPath: '/usr/local/share/dotnet/sdk/5.0.101/',
    _: '.../node_modules/.bin/gulp',
    INIT_CWD: '.../Web'
  }
  [17:50:30] Finished 'build' after 71 ms

Terminal will be reused by tasks, press any key to close it.
-------------------------------------------------------------------
You may only use the Microsoft .NET Core Debugger (vsdbg) with
Visual Studio Code, Visual Studio or Visual Studio for Mac software
to help you develop and test your applications.
-------------------------------------------------------------------
Using launch settings from '/.../Web/Properties/launchSettings.json' [Profile 'Web']...
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Private.CoreLib.dll'.
Loaded '/.../Web/bin/Debug/net5.0/Web.dll'. Symbols loaded.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Runtime.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Hosting.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/netstandard.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Hosting.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Hosting.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Configuration.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.DependencyInjection.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Logging.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Collections.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.ComponentModel.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.IO.FileSystem.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Hosting.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Configuration.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Configuration.EnvironmentVariables.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Primitives.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Threading.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Linq.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Server.Kestrel.Core.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Server.Kestrel.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Server.IIS.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Runtime.InteropServices.RuntimeInformation.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Server.IISIntegration.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Configuration.CommandLine.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Mvc.Core.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.FileProviders.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.FileProviders.Physical.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Memory.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Configuration.FileExtensions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Configuration.Binder.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Configuration.Json.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Configuration.UserSecrets.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Runtime.InteropServices.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.IO.FileSystem.Watcher.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.ComponentModel.Primitives.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Collections.Concurrent.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.FileSystemGlobbing.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Threading.Thread.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Text.Json.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Text.Encoding.Extensions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Numerics.Vectors.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Runtime.CompilerServices.Unsafe.dll'. Module was built without symbols.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Options.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Logging.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Logging.EventLog.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Logging.Configuration.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Options.ConfigurationExtensions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Logging.Console.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Logging.Debug.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Logging.EventSource.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Diagnostics.Tracing.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Diagnostics.DiagnosticSource.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Http.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Http.Features.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Http.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Connections.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Net.Primitives.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.HostFiltering.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.HttpOverrides.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Routing.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.ObjectPool.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Routing.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.ObjectModel.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Mvc.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Runtime.Loader.dll'.
Loaded '/.../Web/bin/Debug/net5.0/Web.Views.dll'. Symbols loaded.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Razor.Runtime.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Mvc.Razor.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Mvc.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Authentication.Core.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Authentication.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Security.Claims.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Authorization.Policy.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Authorization.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Mvc.DataAnnotations.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Mvc.RazorPages.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Razor.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Mvc.ViewFeatures.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Linq.Expressions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Components.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.JSInterop.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.DataProtection.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.DataProtection.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Cryptography.Internal.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Antiforgery.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.WebEncoders.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Text.Encodings.Web.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Runtime.Intrinsics.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Caching.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Caching.Memory.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Mvc.TagHelpers.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Extensions.Localization.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Threading.ThreadPool.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Runtime.Extensions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Console.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Threading.Tasks.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/Microsoft.Win32.Primitives.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Xml.XDocument.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Private.Xml.Linq.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Private.Xml.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/Microsoft.Win32.Registry.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/System.IO.Pipelines.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Security.Cryptography.Algorithms.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Private.Uri.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Text.RegularExpressions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Reflection.Emit.ILGeneration.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Reflection.Emit.Lightweight.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Reflection.Primitives.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Security.Cryptography.Primitives.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Diagnostics.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.HttpsPolicy.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.StaticFiles.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.Net.Http.Headers.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.ComponentModel.TypeConverter.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Collections.Specialized.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Html.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Metadata.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Diagnostics.Abstractions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Security.Cryptography.X509Certificates.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Collections.NonGeneric.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Formats.Asn1.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Security.Cryptography.Encoding.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Runtime.Numerics.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Net.Security.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Net.Sockets.dll'.
Microsoft.Hosting.Lifetime: Information: Now listening on: https://localhost:5001
Microsoft.Hosting.Lifetime: Information: Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: https://localhost:5001
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
Microsoft.Hosting.Lifetime: Information: Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
Microsoft.Hosting.Lifetime: Information: Hosting environment: Development
Microsoft.Hosting.Lifetime: Information: Content root path: /.../Web
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /.../Web
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.ComponentModel.Annotations.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.WebUtilities.dll'.
Loaded 'Anonymously Hosted DynamicMethods Assembly'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/5.0.1/Microsoft.AspNetCore.Http.Extensions.dll'.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/System.Net.WebSockets.dll'.

我认为您可能需要将环境变量从 .vscode/launch.json 文件中的 env 移动到 [=13= 中的“Web”属性 中的 environmentVariables ].

docs.microsoft.com reference

我想尝试在您的 tasks.json 调用中添加另一个包含“/p:ASPNETCORE_ENVIRONMENT=$(ASPNETCORE_ENVIRONMENT)”的 args 元素?

查看 process.env 的输出,dotnet.exe 的调用环境似乎没有从 VSCode.

继承环境变量

无论是否传递环境变量,在我看来,您都在尝试 运行 程序处于 Development 模式,对吗?您似乎成功地做到了这一点,因为在最后的输出 window 中显示的托管环境实际上是 Development。所以,如果这是你的目标,也许 per si.

另一方面,您会发现为生产用途定义 ASPNETCORE_ENVIRONMENT 变量很有用。如果是这种情况,在 MSBuild 中定义它可能不是您想要的,也绝对不是在 launchSettings.json 中定义,因为这仅用于开发目的。所以,我认为在你想要运行应用程序的环境中将其定义为环境变量将是一个不错的选择 - 然后,该值是否为开发StagingProduction 取决于部署管道。

然而,请注意,如果您不想访问 ASPNETCORE_ENVIRONMENT 变量本身,您实际上可能不需要定义它。已发布应用程序的默认托管环境是 Production,只有在提供环境变量时才会更改 (here)。

这个 有关于这个主题的很好的信息:)

TL;DR

tasks.json里面的build任务改成

         {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "options": {
                "env": {
                    "ASPNETCORE_ENVIRONMENT":"development"
                }
            },
            "args": [
                "build",
                "${workspaceFolder}/Web/Web.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        },

解释

launch.jsonLaunch Targets 中设置的环境变量 (ENV) 仅传递给 program,而不传递给任何启动任务。
也就是说,这些 ENV 仅传递给 ${workspaceFolder}/Web/bin/Debug/net5.0/Web.dll,而不传递给 preLaunchTask 中的 build 任务。
仅供参考,构建项目 (.csproj) 是由 dotnet build 而不是 msbuild 完成的,存在细微差别。
无论如何,这个构建是由 preLaunchTask (build) 发起的。
因此,如果您希望将 ENV 传递给项目构建器(然后传递给 gulp 程序),那么您需要通过某种方式将它们支付给 build 任务,在 tasks.json 中指定 ENV 可以通过 options 属性 传递给任务。 https://code.visualstudio.com/docs/editor/tasks#_custom-tasks

不...你不能像这样重用 ENV 变量

"env": {
    "ASPNETCORE_ENVIRONMENT":"${env:ASPNETCORE_ENVIRONMENT}"
}

原因同上; Launch Targets 中的 ENV 未传递给任务。