0

我正在一个 MVC3 应用程序中工作,该应用程序引用了使用 Microsoft Enterprise Library 版本 5 的程序集。

我正在做一个关于使用 ReportViewer 创建报告的研究项目。我了解到 ReportViewer 不能在 Razor 视图中使用,所以我必须使用 ASPX 页面。页面如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="Test.BirthdayReport.BirthdayReport" %>

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Birthday Report</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
            <rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="100%">                        </rsweb:ReportViewer>
        </div>
        </form>
    </body>
</html>

为了使用 ReportViewer,我必须包含 ScriptManager,但是当页面加载时我收到此错误:

无法加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Common,Version=4.1.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

我知道我不能在 bin 目录中同时拥有 4.0 和 5.0 EnterpriseLibrary 程序集,所以我尝试在项目中添加对 5.0 版本的 Microsoft.Practices.EnterpriseLibrary.Common 的引用,但我仍然得到相同的错误。

如何将 ScriptManager 与 EnterpriseLibary 5.0 一起使用?

4

1 回答 1

0

我们的另一个程序集(在 Web 应用程序中使用)是引用 EnterpriseLibrary.Common 5、EnterpriseLibrary.Logging 5、EnterpriseLibrary.Data 4.1 和 EnterpriseLibrary.Logging.Database 4.1。

一旦我确定这个程序集引用了所有这些程序集的 5.0 版本,我的错误就停止了。

于 2012-10-29T14:19:58.677 回答