将附加参数传递给.csproj文件中运行的npm

时间:2019-06-27 09:19:05

标签: .net-core msbuild dotnet-cli

刚遇到了这个problem(简而言之:将新生成的dotnet核心anuglar应用程序部署到IIS实例后,对于所有.css和.js文件,它的代码都是404),发现第一个答案对我有用。使用--base-href <basedir>选项404s编译应用后,该应用消失了。

我当前要存档的是dotnet publish会根据每个发布配置文件自动对我执行此操作(因此,这里无法将base-href硬编码为.csproj)。我认为可以完成这项工作的方法是,我已经在 profile.pubxml.user 文件中添加了一个新属性:

<PropertyGroup>
    ...
    <additionalBuildParams>--base-href /myapp/</additionalBuildParams>
    ...
</PropertyGroup>

并修改了.csproj文件,例如:

<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
...
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build $(additionalBuildParams) --prod" />
...
</Target>

但执行dotnet publish -c Debug /p:PublishProfile=profile.pubxml之后  输出看起来像这样:

λ dotnet publish -c Debug /p:PublishProfile=profile.pubxml
Microsoft (R) Build Engine version 15.9.20+g88f5fadfbe for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
...
  > MyApp@0.0.0 build C:\Projects\MyApp
  > ng build --extract-css "/myapp/"

显然,所需的输出将是:

  > ng build --extract-css --base-href /myapp/

0 个答案:

没有答案