【问题标题】:Environment Variable not found in csproj File在 csproj 文件中找不到环境变量
【发布时间】:2022-11-10 20:06:57
【问题描述】:

我尝试在我的 csproj 文件中使用环境变量 APSNETCORE_ENVIRONMENT 作为条件。但这似乎不起作用。

编码:

<Target Name="NpmInstall" Inputs="$(SpaRoot)/package.json" Outputs="$(SpaRoot)/node_modules/.install-stamp" Condition="$(ASPNETCORE_ENVIRONMENT) != 'Development'">

【问题讨论】:

  • 该环境变量是否存在?该环境变量旨在指定 ASP.NET Core运行环境。项目文件永远不会部署到生产服务器(我希望如此)。如果要为不同的构建执行不同的步骤,请使用不同的配置超越调试/发布或不同的配置文件
  • 是的,它存在!我在 Visual Studio 的“属性”选项卡中指定了它。我想使用另一个变量,但我想用一个我知道存在的变量来尝试它!
  • 所以它不存在你的回答证实了这一点。 Debug 选项卡中的环境变量应用于已编译的正在调试的应用程序。它们不会更改您机器的环境变量。它可以指定影响构建过程的额外环境变量

标签: windows visual-studio asp.net-core environment-variables csproj


【解决方案1】:

NVM,显然 msbuild 只接受系统变量,但不接受调试选项卡中定义的变量。 通过将我想要的变量添加到全局环境变量来解决它。

【讨论】:

  • 没有“全局”或“调试”环境变量。环境变量是环境用于运行任何应用程序。启动新进程时可以指定额外的环境变量。 Debug 选项卡中的设置仅在以下情况下使用调试应用程序,而不是在构建它时。当调试器启动已编译的应用程序时,它会将所有环境变量添加到应用程序的进程中。
  • 您可以指定影响构建的额外环境变量,例如作为预构建步骤,或使用适当的 MSBuild 目标 as shown here
【解决方案2】:

尝试在条件中将变量用单引号括起来,例如

Condition="'$(ASPNETCORE_ENVIRONMENT)' != 'Development'">

【讨论】:

    猜你喜欢
    • 2018-07-15
    • 1970-01-01
    • 2018-12-27
    • 2016-07-11
    • 2013-04-17
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多