Po przeszukaniu wielu similair posty, obejścia, zdecydowałem się zrobić własny post.C#: Typ "Microsoft.Reporting.WebForms.ReportViewer" istnieje zarówno w ReportingServicesWebUserInterface.dll i Microsoft.ReportViewer.WebForms.dll
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'
Aktualizacja:
Większość similair posty mieć jako problem, że ich 2 sprzeczne DLL mają wersję 8.0.0.0 i 9.0.0.0, albo tak. Lub, że znajdują się w folderze TYMCZASOWYM. Nie sądzę, że mój problem można rozwiązać w podobny sposób z takimi postami.
Na naszym ReportServer istnieje Report.aspx, który renderuje raport. Chcę, aby zastąpić ten plik z własną rękę, aby zmodyfikować układ strony, tak jak poniżej:
<%@ 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>
Wymaga to odniesienie do MS.ReportViewer.WebForms.DLL
plik My Project.csproj ma to:
<Reference Include="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
I nie był w stanie odinstalować DLL w C: \ WINDOWS, ponieważ stwierdzono, że był zobowiązany do innych zastosowań.
Próbowałem również zmodyfikować web.config, dodając trochę dependentAssemnly, ale nie wiem, co byłoby przydatne (to był użyteczne dla różnic wersji wspomnianych powyżej).
Dalsze mam te linie w pliku 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>
Dziękuję za wejście. Nie mogę się doczekać, aby otrzymać Twoje sugestie.
Czy próbowałeś usunąć jedną z nich? – Bastardo
Nie jest dla mnie jasne, w jaki sposób doszedłeś do tego problemu i jakie rozwiązania wypróbowałeś, które nie zadziałały? Czy jest szansa, że rozwiążesz kilka kroków, które pozwolą nam odtworzyć tę sytuację? – Jeroen
Aktualizacja pomaga, chociaż nadal nie jestem całkowicie pewien, jaka jest twoja sytuacja. Być może pomoże Ci [BindingRedirect] (http://msdn.microsoft.com/en-us/library/eftw1fys.aspx) przekierowywanie wywołań dla wersji 8 do wersji 9? – Jeroen