2013-05-01 54 views
1

我正在編寫一個包含與我公司數據庫的不同版本一起工作的通信庫的兩個不同版本的包裝。這些通信庫具有完全限定名稱的類,所以我將引用加載到不同的別名中;我用全局別名中的一個或另一個在非全局別名中嘗試了它,並且在這兩種情況下,Visual Studio 2012都抱怨我有編譯錯誤。在具體的,在我的兩個包裝類的,我獲取從工廠方法Visual Studio針對非全局別名中的類型顯示錯誤CS0029

extern alias MyAliasVersionX; 
using MyAliasVersionX::Example.MyNamespace; 
... 
private Connection _connection; 
... 
_connection = Connection.Create(environmentName); // this returns an Example.MyNamespace.Connection--but this is where the compile error happens 

的代碼在兩個類幾乎相同的連接;最大的區別是頂部使用語句中別名的版本。在一個班級中(似乎是首先列出的任何參考),一切正常,沒有錯誤。在另一個類中,Visual Studio告訴我上面提到的那一行會產生編譯錯誤,因爲Connection.Create()返回Connection對象的其他版本(即,MyAliasVersionY :: Example.MyNamespace.Connection而不是MyAliasVersionX :: Example.MyNamespace.Connection)。

這裏是重要的部分:當我真正生成項目,它編譯罰款和運行良好,並在錯誤列表窗格中顯示錯誤消失......直到我進行任何更改代碼,在這一點它返回,仍然不會導致生成錯誤。

這是Visual Studio中的錯誤嗎?如果不是,我錯過了什麼?

+0

腥 - 嘗試關閉VS,重新啓動計算機。打開它,看看它是否消失。 – Jordan 2013-05-01 17:06:14

+0

沒有骰子。重新啓動後仍然存在,並且可以在同事的機器上重現(儘管他將它放在其他版本的包裝類中 - 什麼!?) – 2013-05-01 18:30:47

回答