在搜索了很多类似的帖子、解决方法后,我决定自己发帖。
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0433:
The type
'Microsoft.Reporting.WebForms.ReportViewer'
exists in both
'c:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\reportmanager\Bin\ReportingServicesWebUserInterface.dll'
and
'c:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll'
更新:
大多数类似的帖子都存在一个问题,即它们的 2 个冲突 DLL 的版本分别为 8.0.0.0 和 9.0.0.0 左右。或者它们位于 TEMPORARY 文件夹中。我不认为我的问题可以用这样的帖子来解决。
在我们的 ReportServer 上有一个 Report.aspx,它呈现一个报告。我想用我自己的文件替换这个文件,以修改页面布局,如下所示:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Report.aspx.cs" Inherits="WebApplication._Default" %>
<%@ Register
Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms"
TagPrefix="rsweb" %>
<!DOCTYPE>
<html>
<head runat="server"></head>
<body>
<div>
<form id="reportform" runat="server">
<div>
<rsweb:ReportViewer
ID='ReportViewerRoot'
runat='server'
ProcessingMode='Remote'
Height='100%'
Width='100%'
AsyncRendering='False'
SizeToReportContent='True'
/>
</div>
</form>
</div>
</body>
</html>
这需要引用 MS.ReportViewer.WebForms.DLL
我的 Project.csproj 文件有这个:
<Reference Include="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
我无法卸载 C:\WINDOWS 中的任何 DLL,因为它说它是其他应用程序所必需的。
我也尝试过修改 web.config,添加一些dependentAssemnly,但不确定什么会有用(它对上面提到的版本差异很有用)。
此外,我在 web.config 中有这些行:
<compilation defaultLanguage="c#" debug="false" tempDirectory="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\RSTempFiles\">
<assemblies>
<clear />
<add assembly="ReportingServicesWebServer" />
</assemblies>
</compilation>
谢谢您的意见。我期待收到您的建议。