2009-10-12 27 views
4

我有一個項目,我正在遷移到使用Linq To SQL的過程。就整體而言這很好,但我卡在那裏,如果我試圖把時間戳從DTO到一個隱藏字段我在運行時得到這個錯誤的問題:參考大會肯定是項目的一部分所需的參考

BC30652:需要對程序集引用「系統.Data.Linq,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'包含'System.Data.Linq.Binary'類型。添加一個到你的項目。

我肯定有一個對程序集的引用,否則其他代碼段不會編譯。我嘗試刪除所有引用並刪除bin和obj文件夾,但我仍然得到相同的錯誤。

它發生在這條線的標記:

<asp:HiddenField ID="hfTimestamp" runat="server" 
    Value='<%#CType(Container.DataItem, CommunicationType).pslTimestamp.TimestampToString() %>' /> 

凡TimestampToString是一個擴展方法,看起來像這樣:

<Extension()> _ 
Public Function TimestampToString(ByVal binary As Binary) As String 

    Return BitConverter.ToUInt64(binary.ToArray(), 0).ToString() 

End Function 

有沒有人見過這種行爲,知道一個修復程序它?

回答

5

你是否在不同的程序集中將你的邏輯分開了?如果是這樣,那麼你必須在Web應用程序中引用它。您可以將它添加到web.config

<compilation debug="true"> 
    <assemblies> 
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    </assemblies> 
</compilation> 
+0

我添加了最後兩個程序集,您列出,它現在工作,這是奇怪的,因爲相同的程序集在項目引用。 – ilivewithian