2012-01-08 85 views
9

Iv'e從這裏下載了一個C#間隔樹集合類類http://intervaltree.codeplex.com/SourceControl/list/changesets - >右側 - >下載。C#使用其他代碼

但我無法打開整個項目在我的Microsoft Visual C#2010速成(還將運行C#XNA),因爲

解決方案的文件夾沒有在此版本的應用程序

的支持

另外我只是希望課程在我自己的seprate項目中分開使用。

我試圖複製三個重要看似文件Interval.csIntervalNode.csIntervalTree.cs到我的項目,但這個產生的編譯錯誤

有沒有進口其處理此類文件

我我也嘗試將這三個文件的內容複製並粘貼到我的項目中,並將它們封裝到自己的名稱空間中,同時還有很多代碼。我不得不rearange一些一點點,但遇到了那個可能就是了PowerCollections .dll和.pcb文件作爲using Wintellect.PowerCollections;導致

類型或命名空間名稱「Wintellect的」的問題usings的找不到(是你缺少using指令或程序集引用?)

我不知道如何繼續,或者如果我做了正確的事情都在如何得到這個類的工作。

+0

只是檢查是否有引用的列表,以及它是否存在於過去在那裏入伍該DLL。既然你說你使用的是studio express,我不確定你會有他們使用過的測試框架。除了在代碼中使用這個設置,我沒有任何問題,幾個斷言失敗。另外兩個斷言生成時間取決於你的系統在時間做,有一個斷言得到其必須更改,以引用第一個數組的計數的交叉點。 – King 2012-01-08 15:40:11

+0

創建一個項目(一個類庫項目)和參考添加到[DLL](HTTP://powercollections.codeplex。com/releases/view/6863),這取決於你將要構建的平臺(x86/x64)並構建它。 – King 2012-01-08 15:59:31

+1

這不是一個真正的代碼問題。 – ja72 2012-01-08 16:09:41

回答

13

庫添加到您的解決方案

複製IntervalTreeLib目錄到您的解決方案目錄。然後,右鍵單擊您的解決方案,然後添加現有項目。將它指向IntervalTreeLib中的IntervalTreeLib.csproj,然後單擊打開。這應該將IntervalTreeLib項目添加到您的解決方案。

Add Existing Project Screenshot

一個參考圖書館加入在項目

然後,在你的項目中,添加到IntervalTreeLib proejct一個參考: - 右鍵單擊​​引用文件夾,並添加參考。單擊「項目」選項卡,然後選擇IntervalTreeLib。

Add Reference Screenshot

Select Project Reference Screenshot

在代碼中使用的類

要使用從庫中的類在源的話,你需要或者補充:

using IntervalTreeLib; 

void Foo() { 
    IntervalTree<int, int> tree = new ... 
} 

或者,用他們的全名引用他們:

IntervalTreeLib.IntervalTree<int, int> tree = new ... 
+0

謝謝,目前看起來確定,非常有希望。我試着使用「IntervalTree interval = new IntervalTree();」時,找不到「IntervalTree」的類型或名稱空間名稱(是否缺少using指令或程序集引用?)。「IntervalTreeLib」 – alan2here 2012-01-08 15:52:15

+0

編輯我的答案以包含該信息 – 2012-01-08 15:59:13

+0

無法找到類型或名稱空間名稱'IntervalTreeLib'(您是否缺少使用指令或程序集引用?) – alan2here 2012-01-08 16:00:38

4

打開IntervalTreeLib.csproj文件,如果你希望能夠打開該項目在它的全部(或在當前解決方案中添加現有項目(在解決方案,您可以用鼠標右鍵單擊),然後選擇IntervalTreeLib.csproj) 。如果你試圖抓住只是在你的項目中的代碼文件,確保你也搶PowerCollections.dll文件(我看到它是在同一文件夾中的代碼文件),或者你的代碼將無法編譯(如你發現)。您需要添加對其的引用,並在使用該庫的代碼文件的頂部包含所需的using語句(或使用具有名稱空間的完全限定名稱)。

using IntervalTreeLib; 

var myObj = new IntervalTreeLib.[WhateverClass](...); 

此外,請務必閱讀license.txt文件。如果您使用的是代碼,則可能需要包含它。在應有的地方給予信貸。

UPDATE:

如果測試項目導致您的問題,只需打開庫項目。理想情況下,您可以打開並編譯它,將直接生成的輸出DLL文件添加到您的解決方案中。除非您打算更改庫源代碼本身,否則這是理想的。

+0

當我試圖打開csproj文件時,它繼續並打開.sln文件。這會導致OP問題。 – 2012-01-08 15:34:54

+0

@JonathonReinhart:那麼對他來說,更好的做法是添加現有解決方案的第二種方式,我猜。無法在這裏自己測試(今天早上在我的Linux機器上)。 – 2012-01-08 15:42:25

+0

設置本身就像它應該那樣工作。但是當他使用不同版本的工作室時,他無法打開它。但他可以添加everythign,然後他應該正確引用dll。只要看到引用列表和dll的路徑就可以了。 – King 2012-01-08 15:46:21

0

既然討論,你能夠建立Intervallib.dll,我們將討論如何你應該在你的項目中的DLL。

在凸出

現在,右鍵點擊引用部分和DLL intervallib.dll添加到您的引用。在你的game.cs文件中,引用命名空間爲 - using IntervalTreeLib;

那麼你應該實際上將dll powercollections.dll複製到proj目錄的bin目錄中。

,因爲有一個間接的鏈接DLL,因爲它是在IntervalTreeLib.dll

使用以下步驟您應該複製這個dll,我能執行此項目。