【问题标题】:How to configure NCrunch so that it can build a Blazor project如何配置 NCrunch 以便它可以构建 Blazor 项目
【发布时间】:2019-12-24 09:48:11
【问题描述】:

当 NCrunch(版本 4.2.0.7)尝试构建 Blazor 项目(版本 3.0.0-preview9)时,会产生以下错误:

packages\microsoft.aspnetcore.blazor.build\3.0.0-preview9.19465.2\targets\Blazor.MonoRuntime.targets (441, 5):命令“dotnet”C:\Users\Rodolfo.nuget\packages\ microsoft.aspnetcore.blazor.mono\3.0.0-preview9.19462.2\build\netstandard1.0../../tools/illink/illink.dll" -l none --disable-opt unreachablebodies --verbose --strip -security true --exclude-feature com --exclude-feature sre -v false -c link -u link -b true -d (...这里有很多文件...)退出代码-532462766。

如何让 NCrunch 构建 Blazor 项目?

免责声明:我在网上找不到一个答案后写这个问题,包括 SO。我已经找到了解决方案并打算自己回答这个问题,以便 - 希望 - 帮助其他人。

【问题讨论】:

    标签: blazor ncrunch


    【解决方案1】:

    TL;DR

    1. 转到 Blazor 项目的 NCrunch 配置。
    2. 添加一个名为 BlazorLinkOnBuild自定义构建属性(从 3.2.0-preview3 开始,重命名为 BlazorWebAssemblyEnableLinking ) 值为 false


    完整说明 ...以防细节发生变化。

    在错误消息中提到的 .targets 文件的第 441 行中,您将找到导致错误的 Exec 命令:

    <Exec Command="dotnet &quot;$(MonoLinkerPath)&quot; $(_BlazorLinkerAdditionalOptions) @(_BlazorFolderLookupPaths, ' ') -o &quot;$(BlazorIntermediateLinkerOutputPath)&quot; @(_BlazorAssemblyDescriptorFiles, ' ') @(_BlazorAssembliesToLink, ' ')"  />
    

    此命令包含在以下目标中:

    <Target
      Name="_LinkBlazorApplication"
      Condition="$(_BlazorShouldLinkApplicationAssemblies) != ''"
      Inputs="$(BlazorBuildLinkerInputsCache);
              @(IntermediateAssembly);
              @(_BlazorDependencyInput);
              @(BlazorLinkerDescriptor)"
      Outputs="$(BlazorIntermediateLinkerResultFilePath)"
    >
    

    这意味着仅当 _BlazorShouldLinkApplicationAssemblies 属性不为空时才会执行 Exec。在 .targets 文件中搜索设置此内部属性的位置,您将找到此 PropertyGroup(第 152 行):

    <PropertyGroup Label="Build properties">
      <_BlazorShouldLinkApplicationAssemblies Condition="$(BlazorLinkOnBuild) == 'false'"></_BlazorShouldLinkApplicationAssemblies>
      <_BlazorShouldLinkApplicationAssemblies Condition="$(BlazorLinkOnBuild) == 'true'">true</_BlazorShouldLinkApplicationAssemblies>
      <_BlazorBuiltInBclLinkerDescriptor>$(MSBuildThisFileDirectory)BuiltInBclLinkerDescriptor.xml</_BlazorBuiltInBclLinkerDescriptor>
    </PropertyGroup>
    

    这就是为什么将 BlazorLinkOnBuild(从 3.2.0-preview3 开始,重命名为 BlazorWebAssemblyEnableLinking)设置为 false em> 允许 NCrunch 构建项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多