簡體   English   中英

盡管安裝了先決條件,但無法加載程序集Microsoft.ReportViewer.Common

[英]Could not load assembly Microsoft.ReportViewer.Common, despite installing the prerequisites

所以,我有一個C#windows工作流項目,它以編程方式創建報告並通過電子郵件發送出去。 它在我的本地計算機上運行正常,但將它放在另一台計算機上的調度程序中會產生以下錯誤:

無法加載文件或程序集'Microsoft.ReportViewer.Common,Version = 11.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或其依賴項之一。 定位的程序集的清單定義與程序集引用不匹配。 (HRESULT異常:0x80131040)

基於其他主題,我嘗試從以下地址安裝MICROSOFT®REPORTVIEWER 2012 RUNTIME: http//www.microsoft.com/en-us/download/details.aspx?id = 35747。 這沒有用。 這是一個非常普遍的解決方案,但我喜歡任何其他建議或建議。

接受的答案指出了我正確的方向。 但是,沒有提供足夠的細節讓我達成解決方案。 我想將此作為對該答案的評論添加,但它太長了。

在我的VS項目中,我引用了Microsoft.ReportViewer.WinForms版本12.0.0.0,當部署到另一台計算機時遇到了與此問題相同的錯誤。 問題的關鍵是錯誤的一部分:

定位的程序集的清單定義與程序集引用不匹配。

它告訴你它找到了一個具有正確名稱的DLL,但它是錯誤的版本。 我通過引用對話框添加了對Microsoft.ReportViewer.Common的引用,但我沒有發現引用對話框的“Extensions”部分中列出的唯一一個是10.0.0.0版本。 所以當然如果你告訴它部署錯誤的那個,它會部署錯誤的。

您需要做的是在您的系統上找到版本為12.0.0.0的Microsoft.ReportViewer.Common.dll文件,並手動包含對該文件的引用。 對我來說,它位於以下目錄中:

C:\\ WINDOWS \\裝配\\ GAC_MSIL \\ Microsoft.ReportViewer.Common \\ 12.0.0.0__89845dcd8080cc91 \\

一旦我添加了該引用並在我的VS項目中將兩個DLL設置為Copy Local,那么一切都在已部署的計算機上運行。

注:我沒有要求微軟報表查看器2012運行時的安裝,以便將它部署的機器上工作。 對於像我這樣想要在部署期間避免任何其他安裝的任何人。

嘗試將dll文件添加到項目中:C:\\ Program Files \\ Microsoft Visual Studio 10.0 \\ ReportViewer在發布項目后將它們添加到bin文件夾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM