2011-08-17 57 views
1

我需要使用nettiers類庫來創建控制檯應用程序。我創建了一個新的控制檯應用程序項目,添加了對來自NetTier的所有庫的引用,並創建了一個包含所有必要配置的app.config文件。當我編寫代碼時,我得到了intellisense,沒有錯誤和一切,但是當我編譯應用程序時,出現PPGEDI.Data不存在的錯誤。無法識別nettiers數據類庫

我只有在Program.cs的Main方法1線:

PPGEDI.Entities.VansEntity van 
    = DataRepository.VansEntityProvider.GetById(16); 

,我發現了以下錯誤:

Error 93 
    The type or namespace name 'Data' 
    does not exist in the namespace 'PPGEDI' 
    (are you missing an assembly reference?) 

這是令人沮喪,因爲我知道我已經添加了組裝參考:

enter image description here

我使用Visual Studio 2010年,與C#和.NET 4.0。任何人都可以給我一個想法,我需要做些什麼才能使這個工作。

需要注意的是,如果我在nettiers生成的web應用程序中的ASPX頁面上的方法中使用相同的語句,則此方法有效。

+2

?如果是這樣,切換到完整的.NET 4作爲目標框架 – BrokenGlass

+0

另外,除非有人可以確認(我不熟悉這些庫),請查看您最喜愛的IL反編譯器(反射器,ilSpy等)中的程序集以及確保在該程序集中定義的名稱空間中有*實際類型。 –

+0

.NET版本可能發生衝突?你有沒有試圖讓你的項目的.NET 2.0或3.5? – Tigran

回答

1

@BrokenGlass, you were absolutely correct. I double checked and it was set to ".NET Framework Client Profile", I changed it to .NET 4 and it's working now, can you put that as an answer?

您在控制檯應用程序中使用.NET客戶端配置文件,該應用程序是不包含所有程序集的「縮小」版本。

問題是,當您的應用程序添加對以完整框架爲目標的類庫的引用時,對「完整」框架程序集的引用將無法解析。這會導致您看到的非常不可預知的錯誤消息。切換到完整的.NET 4作爲目標框架將解決該問題。

對於這個問題和一般的.NET 4客戶端配置文件的詳細概述了更也被你偶然使用您的控制檯應用程序.NET客戶端個人資料中看到"What’s new in .NET Framework 4 Client Profile RTM"