1

つまり、私は、かなり長い間 (VS2005 で、その後 2008 年に) 開発中のアプリケーションを知るように割り当てられた駆け出しのプログラマーです。プロジェクトの存続期間中、その命名規則はやや複雑になりました。例として、ネーミング構造の一部を次に示します。

_MegaCorp.sln

Application_Install

Megacorp

DbResources.csproj

Forms

Megacorp.Forms.Concept.csproj

Properties

Resources

Megacorp

Forms

Concept

xyz.cs

情報を整理するのに最適な方法ではないかもしれませんが、VS2008 では問題なく機能します。VS2010 への更新は、既存のコードのオーバーホールを必要としないはずですよね?

何が起こっているのか: xyz が DbResources を呼び出すと、Visual Studio は親 Megacorp フォルダーではなく、Megacorp.Forms.Concept.Megacorp を検索します。すべての適切な参照と使用ステートメントが整然としています。前述のとおり、VS2008 ではすべて正常に動作します。ここで何が起こっているのですか?

    Error   826 The type or namespace name 'xxx' does not exist in the namespace 'MegaCorp.Forms.Concept.Megacorp.Forms.Concept' (are you missing an assembly reference?)   C:\x\y\c-sharp\Megacorp\Forms\Concept\ConstructEditor.Designer.cs   99  63  MegaCorp.Forms.Concept

更新: global::xyz.cs でクラスを使用するたびに追加すると、問題が解決します。ただし、約 1,000,000 行のコードがあり、コンパイラによって報告されるエラーは 400 を超えます。400 個のエラーのそれぞれをくまなく調べて、各エラーの前に貼り付ければglobal::、さらに多くのエラーが発生することは間違いありません。これを行うには別の方法が必要です。なぜなら、ソリューションは VS2008 でコンパイルされた非常に機能的で使用中のアプリケーションで構成されているからです。ご協力いただきありがとうございます!

4

1 に答える 1

1

同様の問題があり、それがTarget Frameworkに関連していることがわかりました。追加されたすべての参照が同じターゲット フレームワークのソリューションであるかどうかを確認します。

于 2013-03-31T09:03:07.437 に答える