2010-01-24 46 views
10

在VS 2008中,我可以通過1解決方案使用不同語言創建多個項目嗎?如果是這樣,怎麼樣?1解決方案中的VB.Net和C#項目

+0

雖然如果OP可以在詢問之前嘗試它,會更容易,但我不認爲這個問題值得-1票。投票 – 2010-01-24 16:00:27

+1

在Visual Studio EXPRESS EDITION中,這是不可能的 – Oliver 2010-01-25 07:37:55

回答

5

由於奧德說,你只要創建它們。通過右鍵單擊Solution節點,選擇Add > New Project,選擇所需的語言和項目類型併爲其指定名稱。

我知道的時候,這並不工作的唯一時間是:

  1. 如果未選中您的Always show solution選項(下Tools > Options > Projects and Solutions

  2. 如果您沒有安裝兩種語言做例如,如果您安裝了不帶Visual C#2008速成版的Visual Basic 2008速成版,反之亦然,或者在安裝過程中取消選擇了其中一種語言。請注意,除快速版外,每個版本默認包含所有語言。

如果您有問題,我會驗證上述問題都不適用。只需檢查Tools > Options設置並檢查Help > About Microsoft Visual Studio下的Installed products列表。如果您需要更改Installed products列表,請重新運行VS.NET設置(或相應的Express版本設置)。

8

只需創建它們。一個解決方案可以愉快地舉辦不同語言的項目。我有C#和VB.NET項目坐在同一個解決方案中沒有問題。

你不能做的是混合語言項目

+0

可以在同一個.NET程序集中混合使用不同的語言(通過編譯不同的編譯器)。但是,Visual Studio IDE不支持這種情況,因此對於所有實際用途都是無用的。 – 2010-01-24 17:30:13

+0

如果我記得沒錯,在VS2002中右鍵單擊解決方案時,可以選擇添加不同語言的項目。我在2008年沒有看到。 我必須是盲人或者其他什麼人。我現在找不到這個選項。我該去哪裏做這件事? – StackOverflowNewbie 2010-01-25 05:13:08

2

您還需要屬性「CLSCompliant」忽略不符合cls的類型/成員。

舉例來說,如果你正在使用C#和VB項目,你將需要排除的情況下,用相同簽名但差分方法(VB是不區分大小寫)

 [CLSCompliant(false)] 
     public static string GetTypeName() { 
      return "SomeBase"; 
     } 

     [CLSCompliant(false)] 
     public static string getTypeName() { 
      return "somBase"; 
     } 
+0

有趣的觀察C#和VB.NET之間區分大小寫的區別,但我希望任何精心設計的C#庫永遠不會真的需要它。給兩個函數使用相同的名稱,僅僅因爲情況不同,這對我來說似乎是不好的做法,因爲在調用它們時很容易混淆兩者。不同的名稱或參數明確指定要返回哪種類型的字符串值會使代碼更加清晰,並完全避免VB.NET兼容性問題。 – 2017-08-31 23:02:26