当NCrunch (4.2.0.7版)试图构建Blazor项目(版本3.0.0-预览9)时,它会产生以下错误:
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 -禁用--选择不可访问的对象-详细的-安全真(这里有很多文件。)以代码-532462766离开。
如何让NCrunch构建Blazor项目?
免责声明:我写这个问题之前,没有找到一个在线的答案,包括这样。我已经找到了解决办法,并打算自己回答这个问题,以便-希望-帮助其他人。
发布于 2019-12-24 09:48:11
TL;博士
BlazorWebAssemblyEnableLinking)
)。


完全解释 ..。以防细节发生变化。
在错误消息中提到的.targets文件的第441行中,您将找到导致错误的Exec命令:
<Exec Command="dotnet "$(MonoLinkerPath)" $(_BlazorLinkerAdditionalOptions) @(_BlazorFolderLookupPaths, ' ') -o "$(BlazorIntermediateLinkerOutputPath)" @(_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>这就是为什么将BlazorWebAssemblyEnableLinking)设置为BlazorLinkOnBuild (从3.2.0-preview 3开始,重命名为BlazorLinkOnBuild)允许NCrunch构建项目的原因。
https://stackoverflow.com/questions/59466864
复制相似问题