1

すべて同じルート名前空間を使用する多くのプロジェクトを含むソリューションがあります。名前空間に明示的に名前を付けるコードファイルはありません。したがって、ルート名前空間がであるとしましょうExampleRootNamespace

作業中のコードファイルの1つに明示的に名前が付けられた名前空間を追加したい場合、問題が発生します。このコードをアセンブリの残りの部分から分離して、FxCopを実行できるようにしたいと思います。Namespace Interfaces.CSVだから私はコードファイルに何かのようなものを追加します。

これにより、このアセンブリを参照するコードはすべて、と言う必要がありますImports ExampleRootNamespace.Interfaces.CSV。ここまでは順調ですね。アセンブリに対してFxCopを実行することもできます。現在の問題は、他のアセンブリでは、次のようなことはもう言えないということです。

Public class frmInputBoolean Inherits
 ExampleRootNameSpace.frmFormTemplate

Visual Studioから、名前空間の名前を次のように変更するように求められます。

Public class frmInputBoolean Inherits
     Global.ExampleRootNameSpace.frmFormTemplate

これに関連する何百ものエラーがあります。だから私の質問は:

1)基本的に、ルートの下で名前空間に初めて名前を付けると、プログラムで問題が発生するのはなぜですか?

2)名前を変更せずにこの問題の回避策はありますか?

ExampleRootNamespace.Interfaces.CSVまた、コードベースのどこにもこれを参照していないという点で、これを追加したいと思います。私は現在、単体テストプロジェクトからそれを参照しています。したがって、この名前空間を追加すると問題が発生する理由がわかりません。

4

2 に答える 2

1

C#USINGでは、名前空間で演算子を使用してみてください。

using ExampleRootNamespace = newExampleRootNamespace;

世界的な問題を抱えているものについて。

残念ながら、VB.NET には簡単な解決策はないと思います。

于 2010-09-27T14:16:14.587 に答える
1

これは Visual Studio 2008 のバグである可能性があります。コードは変更されていませんが、必要なGlobalプレフィックスに関する問題は解消されています。

問題のあるコードファイルの1つをチェックアウトして追加しようとしたため、これを言います(Meakinsが示唆したように):

Imports ExampleRootNamespace = Global.ExampleRootNamespace

私がこれをしたとき、2つのことが起こりました。

1) エラーの強調表示とエラー修正の提案が削除され、Visual Studio で ExampleRootNamespace が認識されるようになりました。また、コードがコンパイルされるようになりました。

2) Imports ExampleRootNamespace = Global.ExampleRootNamespaceimports ステートメントで Global が使用されているため、有効ではありません。Visual Studio は、「このコンテキストでは 'グローバル' は許可されていません。識別子が必要です」と言っています。これは、このコード行がコンパイルされないことを意味します。なのでまとめて外しました。奇妙なことに、そこにないにもかかわらず(したがって、コードは以前のように戻ります)、エラーはなくなりました。

Visual Studioも再起動しました(ただし、上記を実行した後)。あなたが私に尋ねると、これはかなり奇妙です!

于 2010-09-27T14:36:18.230 に答える