我的project.json
文件中有以下脚本,用于将我的类库项目构建到NuGet包中。我不想构建任何Debug NuGet包。如何将此脚本限制为仅在解决方案配置设置为Release模式时运行,以加快调试模式下的构建时间?
或者,作为好奇心的问题,我如何将解决方案配置传递到下面的命令中,以便'发布'没有硬编码。
"scripts": {
"postcompile": [
"dotnet pack --no-build --configuration Release"
]
}
答案 0 :(得分:19)
您可以使用%compile:Configuration%
获取当前配置。 Here是precompile
和postcompile
脚本可用的变量列表。
答案 1 :(得分:5)
要根据配置实际限制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,默认情况下.cmd是针对Windows推断的,而.sh是针对其他环境推断的。
我还将目标配置作为参数,以便脚本是通用的,并且无论我选择哪个配置名称作为我的发布版本,都可以使用该脚本。配置。