2010-09-26 84 views
3

這是一直困擾着我的問題,我只是沒有找到一個好的解決方案(沒有雙關語意圖)。將第三方庫添加到Visual Studio源代碼控制中

我使用Visual Studio 2010與Subversion和Ankhsvn。它工作得很好,但是,我最大的問題是它只能檢索和管理「包含在項目中」的文件。這在很多情況下都很棒,但是當你想要一個包含你想要包含在解決方案中的對象的文件夾時,卻不希望在項目本身(在這種情況下是一個Web項目)中存在。

在這種情況下,我想將一些第三方DLL包含到源代碼控制中(這樣它們可以在與版本控制同步時保持最新狀態)。我不希望開發人員不得不單獨安裝第三方DLL。通常會發生的是,您從其他位置引用DLL,並在編譯時將它們複製到bin文件夾中。

我不希望將它們包含在項目中,因爲當我發佈站點時(而不是通過bin目錄),我不會將它們複製到Web服務器。我想爲這些創建一個獨立的項目,但這會創建一個無用的DLL,然後將其複製到bin文件夾中,因爲它被引用。

我也試着從bin文件夾中檢查它們,但是這導致了一些問題,其中文件沒有同步prolerly,顛覆說有關已存在的版本文件夾等事情。這似乎是一個顛覆或ankhsvn問題,而不是一個視覺工作室的問題。因此,我嘗試通過版本控制保持bin文件夾不變。

你是如何在你的項目中解決這個問題的?

回答

5

這就是我們在項目中的做法。

Folder Structure

我們有這對於其中包含的代碼項目的子文件夾的文件夾源碼。

此外,這有一個名爲庫的文件夾,它具有我們使用的任何第三方DLL的正確版本。這個文件夾在版本控制,因此大家總是有第三方DLL的正確版本

項目中的所有引用到第三方DLL是相對於此文件夾。

由於每個人在他們的機器上都有SourceCode文件夾,所以它工作正常,沒有問題。

編輯:解決方案文件夾與庫內容將其 VS Solution Folder

+0

那不解決我的問題 添加的圖像。我特意說我不想這樣做,因爲我不想在發佈時將dll推送到該文件夾​​中的服務器。另一種方式是指定它們不包含在項目中,這意味着它們不會通過ankhsvn同步,並且需要與Tortiose類似的東西進行同步,這是一種痛苦,必須在兩個地方同步。 – 2010-09-26 03:34:20

+1

您不發佈文件夾。你發佈一個項目。因此,我不確定你在說什麼。我沒有使用TortioseSVN,只有ankhsvn。我不想同時使用兩者。因此,所有版本控制必須與Visual Studio – 2010-09-26 04:29:19

+0

一起發生好,所以如果您的Web應用程序項目位於網站文件夾中,您如何同步源代碼樹?我通過像TortioseSVN這樣的東西來設想。在我的情況下,我不想使用TortioseSVN同步,我只想使用Ankhsvn。而且,由於AnkhSVN只會對Visual Studio解決方案中包含的文件進行sycron ...您是否明白了我的觀點? – 2010-09-26 04:48:19

相關問題