0

Visual Web Developer 2008 Express 環境で正しくコンパイルおよび実行されるものと、Web サーバーで失敗するものに関して、多くの矛盾に直面しています。

特に、私の Web 開発者プロジェクトには、aspx と aspx.cs のコード ビハインドに加えて、いくつかの追加の .cs ファイルがあります。それは問題なくビルドされ、開発サーバーの下で問題なく実行されます。ファイルをサーバーにアップロードすると、分離コードは他の .cs ファイルを認識していないようです。

aspx アプリに追加の .cs ファイルを継承させる正しい方法は何ですか?

--- 更新 --- 必要な答えが本当に見つからないので、私がやっていることをもう少し明確にさせてください:

私は3つのファイルを持っています:

デフォルト.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Import Namespace="UtilClasses" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Default.aspx.cs

public partial class _Default : Page { }

App_Code/UtilClasses.cs

namespace UtilClasses {
  public class AClass {
    public const int A = 1;
  }
}

この例では、次のいずれかを実行しようとすると、Web サーバーでコンパイル エラーが発生します。

  • @Import で App_Code を参照する
  • そこに含まれるコードを aspx.cs 分離コードから呼び出すか、
  • aspx ページからコードを呼び出します。

Web Developer 2008 で正常にコンパイルされます。解決策は、FTP 経由で Web サーバーに自動公開される Web サイトです。公開されているファイルの正確なリストは次のとおりです。

  • デフォルト.aspx
  • Default.aspx.cs
  • App_Code/UtilClasses.cs
  • web.config
4

3 に答える 3

3

展開に問題があるようです。

Webアプリケーション/サイトをフォルダーに公開し(ビルドメニューには公開アイテムがあります)、そのフォルダー内のファイルをサーバーに移動するだけです。

ディレクトリに古いアセンブリファイルと新しいクラスがあると思います。

お役に立てれば

于 2009-02-13T06:35:12.390 に答える
1

部分クラスを使用できます。ファイル ( *.cs) を追加し、クラスをパーシャルとして定義します。そのため、メソッド、プロパティ、別のファイルを配布できます

于 2009-02-13T13:38:09.860 に答える
0

これは、Web アプリケーションでコードを編成する際によくある問題です。ここでは、問題に対処するのに役立ついくつかの指針を示します。

  1. 単一のプロジェクトを使用し、それが ASP.net Web サイト プロジェクトである場合は、.cs ファイルを app_code フォルダーに配置します。

  2. 名前空間を賢く使用し、どの名前空間に何があるかを追跡します。Resharper のようなものがあれば、このタスクを節約できます。

  3. 理想的には、Web プロジェクトにはページ関連クラスとユーティリティ クラスのみを含める必要があります。その他の機能については、C# Express を使用してライブラリを作成します。NUnit/MbUnit などを使用してこれらのライブラリをテストします。

  4. 何かが IIS ではなく Cassini で実行されるかどうか疑問がある場合。開発またはローカル IIS が唯一のソリューションです。

それが役立つことを願っています!

于 2009-02-13T06:40:33.703 に答える