C#: Тип «Microsoft.Reporting.WebForms.ReportViewer» существует как в ReportingServicesWebUserInterface.dll, так и в 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'


Обновление:

В большинстве похожих сообщений проблема заключается в том, что их 2 конфликтующие библиотеки DLL имеют версии 8.0.0.0 и 9.0.0.0 или около того. Или что они находятся во ВРЕМЕННОЙ папке. Не думаю, что моя проблема может быть решена подобным образом такими постами.

На нашем сервере отчетов существует файл 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

Мой проект.csproj имеет следующее:

<Reference Include="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />

Мне не удалось удалить какие-либо библиотеки DLL в C:\WINDOWS, так как было указано, что они требуются для других приложений.
WINDOWS\assembly

Я также пытался модифицировать web.config, добавляя некоторые зависимые сборки, но не уверен, что это будет полезно (это было полезно для различий версий, упомянутых выше).

Далее у меня есть эти строки в 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>

Спасибо за ваш вклад. Я с нетерпением жду ваших предложений.

11
задан EricG 28 June 2012 в 12:58
поделиться