【问题标题】:How to run scripts based on solution configuration in ASP.NET Core如何在 ASP.NET Core 中基于解决方案配置运行脚本
【发布时间】:2016-06-02 15:27:56
【问题描述】:

我的project.json 文件中有以下脚本,用于将我的类库项目构建到 NuGet 包中。我不想构建任何调试 NuGet 包。如何限制此脚本仅在解决方案配置设置为发布模式时运行,以加快调试模式下的构建时间?

或者,出于好奇,我如何将解决方案配置传递到下面的命令中,这样“发布”就不会被硬编码。

"scripts": {
  "postcompile": [
    "dotnet pack --no-build --configuration Release"
  ]
}

【问题讨论】:

    标签: asp.net-core asp.net-core-mvc .net-core project.json


    【解决方案1】:

    您可以使用%compile:Configuration% 获取当前配置。 Hereprecompilepostcompile 脚本可用的变量列表。

    【讨论】:

    • 在哪里可以找到这些脚本事件可用的完整变量列表?
    【解决方案2】:

    要根据配置实际限制 nuget 包的创建,您需要将其传递到脚本中,例如我存储在项目根目录中的 makeNuget.cmd 文件:

    @Echo off
    IF "%1" == "%2" dotnet pack --no-build --configuration %1 -o ../%3
    

    然后,在我的 project.json 中,我有:

      "scripts": {        
        "postcompile": [
          "makeNuget.cmd %compile:Configuration% Release \\packages\\%project:Name%"
        ]
      }
    

    这将创建 nuget 包并将其放置在我的解决方案级别包/[项目名称] 文件夹中(尽管您可能需要根据您的解决方案布局调整 -o 参数中的相对文件夹引用)。此外,您不需要 .cmd,默认情况下,为 windows 推断 .cmd,为其他环境推断 .sh。

    我还将目标配置设置为参数,以便脚本是通用的,并且无论我选择作为“发布”配置的配置名称如何,都可以使用该脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-09
      • 2016-10-16
      • 1970-01-01
      • 2017-12-03
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多