我正在一个 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 一起使用?