MSB4062:无法从程序集Microsoft.ReportViewer.WebForms版本= 15.0.0.0加载“ Microsoft.Reporting.RdlCompile”任务

奥尔索夫卡

有几个类似的Stack Overflow帖子与此问题相似但不相同:

我们拥有Microsoft RDLC报表设计器(https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftRdlcReportDesignerforVisualStudio-18001)并正在使用Visual Studio 2019。

尝试使用64位版本的MSBuild进行构建时,将生成一些RDLC报告,但由于以下错误而导致构建失败:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\ReportingServices\Microsoft.ReportingServices.targets(24,2):
error MSB4062: The "Microsoft.Reporting.RdlCompile" task could not be loaded from the assembly Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91.
Could not load file or assembly 'Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies.
The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.

加载fuslogvw会显示以下绑定日志:

*** Assembly Binder Log Entry  (5/13/2020 @ 4:06:22 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\amd64\MSBuild.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91
(Fully-specified)
LOG: Appbase = file:///C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/MSBuild/Current/Bin/amd64/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = MSBuild.exe
Calling assembly : Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\amd64\MSBuild.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Post-policy reference: Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/MSBuild/Current/Bin/amd64/Microsoft.ReportViewer.WebForms.DLL.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/MSBuild/Current/Bin/amd64/Microsoft.ReportViewer.WebForms/Microsoft.ReportViewer.WebForms.DLL.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/MSBuild/Current/Bin/amd64/Microsoft.ReportViewer.WebForms.EXE.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/MSBuild/Current/Bin/amd64/Microsoft.ReportViewer.WebForms/Microsoft.ReportViewer.WebForms.EXE.
LOG: All probing URLs attempted and failed.

查看VSIX安装日志(dd_setup_20200513155525_001_617ad572-c5b7-415c-b166-b2969077f719)并筛选已安装的DLL,这表明:

Completed: Copying file /$MSBuild/15.0/bin/Microsoft.ReportViewer.Common.dll to C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\15.0\bin\Microsoft.ReportViewer.Common.dll
Completed: Copying file /$MSBuild/15.0/bin/Microsoft.ReportViewer.ProcessingObjectModel.dll to C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\15.0\bin\Microsoft.ReportViewer.ProcessingObjectModel.dll
Completed: Copying file /$MSBuild/15.0/bin/Microsoft.ReportViewer.WebForms.dll to C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\15.0\bin\Microsoft.ReportViewer.WebForms.dll
Completed: Copying file /$MSBuild/15.0/bin/Microsoft.SqlServer.Types.dll to C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\15.0\bin\Microsoft.SqlServer.Types.dll
Completed: Copying file /$MSBuild/Current/Bin/Microsoft.ReportViewer.Common.dll to C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.ReportViewer.Common.dll
Completed: Copying file /$MSBuild/Current/Bin/Microsoft.ReportViewer.ProcessingObjectModel.dll to C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.ReportViewer.ProcessingObjectModel.dll
Completed: Copying file /$MSBuild/Current/Bin/Microsoft.ReportViewer.WebForms.dll to C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.ReportViewer.WebForms.dll
Completed: Copying file /$MSBuild/Current/Bin/Microsoft.SqlServer.Types.dll to C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.SqlServer.Types.dll
奥尔索夫卡

根本原因似乎是MSBuild的探测路径的64位版本希望该任务存在于64位文件夹中,但VSIX安装程序未将其放置在该位置。

要变通解决此问题,请手动复制以下文件:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.ReportViewer.Common.dll
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.ReportViewer.ProcessingObjectModel.dll
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.ReportViewer.WebForms.dll
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.SqlServer.Types.dll

进入64位版本的MSBuild Bin C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\amd64

已向Microsoft报告(这是BI组[通过电子邮件]和MSBuild,以了解探测位置的期望)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档