0

以前は問題なく動作していた Web アプリケーションがありましたが、VB と C# を使用する必要があったため、プロジェクトを Web サイトとして開始しました。

フォルダーに 2 つのサブフォルダーを作成App_Codeし、web.configファイルに次のように記述しました。

<codeSubDirectories>
  <add directoryName="VB_Code" />
  <add directoryName="CS_Code" />
</codeSubDirectories>

次に、Entity Data Model を App_Code フォルダーのルートに配置しました。このようにして、コンパイルしようとしたときに次の警告を受け取りました。

Namespace or type specified in the Imports 'ProductizationModel' doesn't contain any public member or cannot be found. Make sure the namespace or the type is defined and contains at least one public member. Make sure the imported element name doesn't use any aliases.

この事実に関連する多くのエラー: EDM は構築されておらず、その名前空間はまだ存在していませんでした。このエラーは、EDM を介してデータベースにアクセスし、VB_Code フォルダー内で宣言されているクラスから発生します。

App_Code次に、調査の結果、VS はビルド順序に従い、ルート内のファイルの前にVS 内のサブフォルダーがビルドされることがわかりました。

という名前のサブフォルダーをもう 1 つ作成し、ファイルEF_Codeで宣言しました。web.config

<codeSubDirectories>
  <add directoryName="EF_Code"/>
  <add directoryName="VB_Code" />
  <add directoryName="CS_Code" />
</codeSubDirectories>

それでも同じ警告とエラーが表示されます。

誰でも私を照らすことができますか?

どうもありがとう、

4

1 に答える 1

1

私があなたの質問を正しく読んでいれば、あなたの VB_Code フォルダーが最初に来る必要があるようです。Web サイトで複数の言語を混在させることは許容されますが、これは間違いなく悪い使い方です。このような種類の依存関係が必要な場合は、これらのクラスに対して個別のプロジェクトを作成し、それらを直接参照することをお勧めします。App_Code フォルダーを引き続き使用してクラスを格納する場合でも、この方法でライブラリ プロジェクトを設定すると、これらの競合を引き起こしている依存関係を特定するのに役立つ場合があります。

于 2012-10-11T14:09:25.193 に答える