2010-12-17 9 views
1

Visual Studio 2008でライブラリプロジェクトを再コンパイルするとVisual Studioで名前空間を解決できないという問題が発生しました。問題は、Visual Studioが名前空間を不必要に拡張していることです。例えば、私はキャストを持っていますエラーが発生するようにVisual Studioを拡張する

... = (MyCompany.Dashboard.Data.BaseObjects.ZonesStruct) value; 

私は過去に突然コンパイルされたコンパイル時に再コンパイルすると失敗します。 Visual Studioはそれを解決できず、エラーメッセージ "型または名前空間の名前 'Data'が名前空間 'MyCompany.MyCompany.Dashboard' ...に存在しません。これを踏んだ変更は、ライブラリに新しいクラスを追加することでした。失敗しているクラスは、既存のクラスと手つかずのクラスです。

これまでと同じようなことがありましたが、それは明示的に "MyCompany.MyCompany ..."と指​​定されたコードを生成するUIデザイナーでした。私は根本的な原因が両方の状況で同じであることを望んでいる。

有用かどうかはわかりませんが、ライブラリプロジェクトのデフォルト名前空間は "MyCompany"です。私はそれを修正しようとしましたが、私は変更を気付かなかった。

ありがとうございました。この

global::MyCompany.Dashboard.Data.BaseObjects.ZonesStruct

::グローバルに

答えて

3

変更それはすべての方法、ルート名前空間に出た名前空間をエスケープします。これはVisual Studioの問題ではなく、矛盾する名前空間の問題です。

+0

が、上の任意の説明:しかし、あなたは、あなたが持っている名前空間が

... = (global::MyCompany.Dashboard.Data.BaseObjects.ZoneStruct) value; 

globalキーワードの詳細については、MSDNを参照してくださいを使用して開始するにはグローバルスコープであることを確実にすることを試みることができますなぜ最初の修飾子が重複するのですか?これはちょうどどこからも出てこなかったので、Visual Studioが理由をよく理解せずに不平を言うと、グローバル::修飾子をランダムに追加しているように見えます。私はこれが以前に働いたので、紛争がどのように起きたかは分かりません。 – doobop

+2

MyCompany.MyCompanyという名前空間またはMyCompany.MyCompany型のいずれかが存在すると、エラーが発生します(100%ではありません)。 global ::を指定すると、最初の修飾子はネストされていない名前空間でなければならず、コンパイラはその情報のあいまいさを解決することをコンパイラに指示します。グローバル::を何度も指定する必要を避けるために、名前空間や(あまりない)型の誤った名前を調べることをお勧めします。 – JBSnorro

+0

はい、何とか私のクラスは "MyCompany.MyCompany"名前空間で生成されています。問題を修正した修正。ありがとう。 – doobop

関連する問題