2011-11-23 78 views
3

我仍然在學習VS2010如何看待世界的基礎知識。顯然,你可以選擇在項目中「包含」一個文件。我對此有點困惑:如果一個文件受版本控制,並且該文件位於項目目錄中,它是否應該隱式地被「包含」在項目中?如果沒有,項目目錄中的版本控制文件不應該包含在項目中的用例是什麼?爲什麼VS2010允許「包含在項目中」的概念?

===加成===

基礎上我已經得到到目前爲止,也許我應該改寫我的問題的答案:是什麼意思一個文件要在項目「列入」?

+0

示例 - 文件夾中的文件==您擁有的所有衣服,項目==休閒晚餐的禮服。你不會把所有發生在你身上的T恤都只是因爲你擁有了它們,你只會選擇你需要的東西或者必須穿的東西。 –

+0

沒錯,但我正在尋找某人向我解釋「包含在項目中」的實際含義。爲什麼任何版本控制的文件不能成爲項目的一部分?缺點是什麼? –

回答

5

項目需要了解文件以便進行編譯和分發。僅僅因爲你有一個在源代碼控制下的文件,並不意味着如果項目不知道它將被編譯。

另外,您可能希望將文件包含爲分發包的一部分。我們經常爲我們使用web app gallery分發的網絡項目做這件事。相反,您可以擁有版本控制的文檔或sql腳本,但不希望它們成爲項目的一部分。

編輯:在回答您的更新,這意味着什麼要包含在項目中的文件,該文件實際上是添加到.csproj.vbproj文件,並編譯和/或分配過程中使用。如果文件是Content或者它需要Compile它,VS會區分它。這可以通過在解決方案資源管理器中單擊該文件並查看Build Action屬性來看到。

+0

你能澄清一下:如果你在項目中「包含」一個文件,是否意味着該文件是構建過程的一部分? –

+0

不一定,可以說你寫一個網絡應用程序,你需要的內容(圖像,CSS等)。您可以分別創建它們,但需要右鍵單擊並將它們包含在項目中以進行分發。對於您在外部創建的網頁也是如此。 – CAbbott

+0

我應該澄清:在解決方案資源管理器中,您可以選擇「全部顯示」,然後右鍵單擊文件以將其包含在您的項目中。 – CAbbott

5

不,您不希望發生在源代碼管理中包含的項目目錄中的隨機文件。

+0

不,這不是我要問的。如果一個文件的目的是版本控制,爲什麼它不會被包含在項目中? –

+0

「因爲我這麼說」,或者出於任何其他原因,比如,我懶得爲受版本控制但不是項目一部分的東西創建文件夾。爲什麼要假設文件夾中的所有內容都是項目的一部分? –

1

如果文件與項目相關但不一定在解決方案中需要,從項目中排除文件可能會很有用。

例子 如果我需要一些測試XML,我正在寫一個應用程序;它的設計目的通常是將其從WCF服務中提取出來,但將該文件保存在開發環境的目錄中可能會很有用,因爲我使用IO來獲取XML進行測試,但我並不一定要在我的解決方案中使用它這是源代碼控制的。

3

我們確實有時會將文檔(pdf)或圖紙/原理圖放置在項目文件夾和版本控制下,但您不需要它們放入Visual Studio項目中(特別是當它們未被分發時,因爲它們是供內部使用的只要)。

1

從項目中排除文件不再編譯或嵌入時,如果您想再次包含該文件,則可以在不丟失設置的情況下執行此操作。

+0

在這種情況下,我正在使用的文件不是源文件。那麼,爲什麼它是否被包含在項目中呢? –

+0

可能沒有區別,他們根本不想爲未編譯,嵌入,複製等文件實現一組單獨的功能。如果你仔細閱讀了項目編譯方式的話,如果你編寫自定義的構建腳本,那麼文件的處理方式只會影響你。 –

0

如果你將一個文件(包含一個你想要在你的項目中有用的類)複製到你項目的文件夾中,然後你會看到......沒有。您必須檢查解決方案資源管理器的「顯示所有文件」選項,並且可以看到複製的文件,但它仍然「灰顯」。不,您可以選擇菜單項包含在項目中,該文件將被集成到您的項目中,並且您的源代碼控制的待處理更改(添加)也會添加。 Visual Studio不包含它可以在項目文件夾中自動找到的所有文件 - 這是一個很好的功能。

0

我的一位同事向我解釋了一個版本控制文件不應該成爲項目一部分的情況。這裏的想法:

  • 開發人員編寫一些新的代碼。
  • 該代碼是實驗性的,並不打算成爲正常構建的一部分。
  • 從構建中排除文件的最簡單方法是不將其包含在項目中,但仍然是版本控制它。
  • 這樣,文件可以與其他開發人員共享,但不會破壞構建。
+0

這是版本控制中的分支。如果您的實驗工作涉及項目中的現有文件,會發生什麼情況?在那種情況下,如果不爲所有人搞亂事情,你就無法承諾,所以你自己的改變根本不在版本控制之中。在項目中有一個文件的概念對我來說實際上並不是項目的一部分,這是毫無意義的。 – user467257

相關問題