2011-04-11 75 views
9

我一直在撕掉我的頭髮三天試圖獲得一個RDLC報告在VS2010中構建。我想在子報表上的文本項的表達式中的同一解決方案中從另一個項目訪問自定義程序集。在包含RDLC的項目中有一個對程序集的引用,並且我在子報表的屬性中添加了對程序集DLL的引用,但是當我構建它時,出現錯誤,告訴我它無法找到該文件:RDLC項目的構建無法找到自定義程序集

加載代碼模塊時出錯:'CCCArchive,Version = 2.0.847.11068,Culture = neutral,PublicKeyToken = null'。詳細信息:無法加載文件或程序集'CCCArchive,Version = 2.0.847.11068,Culture = neutral,PublicKeyToken = null'或其某個依賴項。該系統找不到指定的文件。

RDLC文件在XML中似乎沒有用於程序集的路徑信息,並且我試圖將程序集的副本放在包含RDLC的項目下的bin \ Debug文件夾中,並且與RDLC沒有成功在相同的文件夾中。

從我已經能夠找到關於此的很少的事情來看,似乎我可能需要在GAC中註冊程序集才能使構建工作,但我無法找到任何直接確認並將其放入在GAC中,只是爲了讓構建運行將是一個主要的麻煩。

我錯過了什麼嗎?

...吉姆·漢森

+0

剛剛發現這一點,六年後Q和@Leniel Macaferi是一個仍然完全適用...我現在在調試器中工作。如果rdlc運行時可以只是總能看到它所嵌入的程序集,默認情況下會更好......您只需編譯構建時間,而不需要運行時 - >在部署到生產服務器?它使用正常(融合)程序集綁定? – dlatikay 2017-04-25 18:12:34

回答

11

一個可能的解決方案,爲我工作在這個崗位描述:

Reporting Services – Custom report error (Error while loading code module: MarketingPilot.Framework.dll)

我複製的錯誤消息中引用該文件夾中的組件:

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies 

這樣做,我可以調試應用程序沒有問題。 :)

+1

這適用於我在2個不同的機器上。 – 2014-01-09 15:07:22

+1

在** x86 **版本上爲我工作 – 2015-07-09 17:44:07

+0

至少在VS 2015中,我發現編譯器只在該私有文件夾中查找一次,才能構建。在運行時它會從項目的bin文件夾中獲取正確的程序集。它甚至不會抱怨方法簽名是否改變,並且它仍然是完全可調試的。 – dlatikay 2017-04-25 18:28:22

4

接受的答案在Visual Studio 2012行之有效我,但相同的解決方案並沒有在Visual Studio 2013年工作,而不是,我也跟着從this post的建議和複製這裏的DLL:

C:\Program Files (x86)\MSBuild\12.0\Bin 
0

我一直在努力使這項工作了兩天,終於使它:

  1. 首先你要極力鍵入您的DLL https://msdn.microsoft.com/en-us/library/xc31ft41(v=vs.110).aspx

  2. 使用Gacutil.exe在GAC中註冊它(每次更新DLL時都必須執行此操作)。

現在它會工作......也許,這樣我能夠找到的組裝後,但我得到了安全問題:「本地報表處理過程中出錯」 ...「通過安全透明方法嘗試......」。

我正在使用.NET 4.5,從一個winform加載報告。

要在集信息解決了這個我不得不添加2個屬性:

  [assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)] 

      [assembly: System.Security.AllowPartiallyTrustedCallers] 

然後只需保存,並重新安裝在GAC中的DLL。

我希望這個信息可以幫助別人。

問候,

Caridad

相關問題