2

私は、主に VB で書かれた VS の Web プロジェクト (Web サイトではない) に取り組んでいます。C# を使用して新しい Web フォームを作成しています。Web フォーム自体はうまく機能しますが、App_Code フォルダー内のクラスにアクセスできません。App_Code フォルダー内のクラスは、VB.net で記述されています。

vb クラス ファイルに Build Action を設定してコンパイルしようとしましたが、ファイルがビルドされないだけです。(コメント行「文字リテラルの文字が多すぎます」およびインポート「名前空間には、フィールドやメソッドなどのメンバーを直接含めることはできません」でエラーが発生します)。また、App_Code フォルダーを「使用」しようとしましたが、見つかりません。

これをどのように解決するか、または回避する方法についての提案は大歓迎です。

- - 編集 - -

「Web サイト」ではなく「Web アプリケーション」として Web サイトを開くと、Visual Studio の動作が異なるようです。これは、ファイルか何かをパックしているためだと思います。申し訳ありませんが、これに気づいていませんでした。これが問題の原因です。Web サイトは VB で記述された CMS システムですが、C# でカスタム ユーザー コントロール/Web フォームを構築しています。これは Web サイトとしては正常に機能しましたが、Web アプリケーションとしては機能しませんでした。この CMS システムを Azure に移行しようとしており、CMS システムの新規インストールから始めました。サイトから Web ロールを作成する唯一の方法は、それが Web アプリケーションである場合です。これが、Azure でサイトを稼働させ、CMS にカスタム モジュールを作成し始めた今まで、この問題に気付かなかった理由です。

--- 編集: 回避策 ---

CMS のインストールを最初からやり直して、箱から出してすぐに使用できるようにし、それを Web アプリケーション プロジェクトにインポートしました。次に、C# ライブラリと VB ライブラリの 2 つの新しいライブラリを作成しました。App_Code フォルダーのコードを VB ライブラリに移動し、Web アプリケーション プロジェクトと C# ライブラリの両方でこのライブラリを参照しました。Web アプリケーション プロジェクトで C# ライブラリを参照し、C# ライブラリにビルド アクションを追加して、.aspx および .ascx ファイルを Web アプリケーション プロジェクトの代表フォルダにコピーしました。C# を言語として使用して、新しい Web コントロールと Web フォームを作成できるようになりました。

4

1 に答える 1

1

VB と C# のコードは、同じ App_Code に共存できます。方法については、このページを参照してください。基本的に、それぞれを独自のディレクトリに分けて、web.config を変更するだけです。

于 2012-06-08T17:33:39.303 に答える