我在ASP.NET Core 2.2项目文件中具有以下内容:
<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build --prod" />
</Target>
发布应用程序时,使用dotnet publish
代替:
npm run build --prod
我需要指定是否应该运行:
npm run build --prod.machine-1
或
npm run build --prod.machine-2
我该怎么做?
答案 0 :(得分:1)
您需要致电dotnet publish
,而不是致电dotnet msbuild /t:publish
。这两个基本相同,但是第二个使您可以访问MSBuild的所有命令行参数。
然后,您可以使用msbuild
(或简称为/property
)参数在对/p
的调用中设置任意properties。然后,您可以将目标更改为以下形式:
<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
<PropertyGroup>
<NPMMachine Condition=" '$(NPMMachine)' != '' ">--prod</NPMMachine>
<PropertyGroup>
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build $(NPMMachine)" />
</Target>
这为目标提供了默认的NPMMachine
--prod
,但如果需要,您可以覆盖NPMMachine
。
如果调用dotnet msbuild /t:publish
,则目标将以--prod
参数运行。
如果要覆盖npm
参数,则可以使用dotnet msbuild /t:publish /p:NPMMachine=--prod.machine-1
调用msbuild。