Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 如何在ASP.NET Core中运行基于解决方案配置的脚本_Asp.net Core_Asp.net Core Mvc_.net Core_Project.json - Fatal编程技术网

Asp.net core 如何在ASP.NET Core中运行基于解决方案配置的脚本

Asp.net core 如何在ASP.NET Core中运行基于解决方案配置的脚本,asp.net-core,asp.net-core-mvc,.net-core,project.json,Asp.net Core,Asp.net Core Mvc,.net Core,Project.json,在我的project.json文件中有以下脚本,我正在使用它将类库项目构建到一个NuGet包中。我不想构建任何调试NuGet包。如何将此脚本限制为仅在解决方案配置设置为发布模式时运行,以加快调试模式下的构建时间 或者,出于好奇,我如何将解决方案配置传递到下面的命令中,以便不硬编码“Release” "scripts": { "postcompile": [ "dotnet pack --no-build --configuration Release" ] } 您可以使用%co

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

或者,出于好奇,我如何将解决方案配置传递到下面的命令中,以便不硬编码“Release”

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

您可以使用
%compile:Configuration%
获取当前配置。是可用于
预编译
后编译
脚本的变量列表。

要根据配置实际限制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包并将其放置在“我的解决方案级别的包”/[project name]文件夹中(尽管您可能需要根据您的解决方案布局调整-o参数中的相对文件夹引用)。另外,您不需要.cmd,默认情况下,windows会推断.cmd,其他环境会推断.sh


我还将目标配置设置为一个参数,因此脚本是通用的,可以使用,而不管我选择的配置名称是“release”配置。

在哪里可以找到这些脚本事件可用的完整变量列表?