0

关于在 Visual Web Developer 2008 Express 环境中正确编译和执行的内容以及在我的 Web 服务器上失败的内容,我遇到了很多不一致的问题。

特别是,我的 Web Developer 项目中有一个 aspx 和 aspx.cs 代码隐藏,以及一些额外的 .cs 文件。它在开发服务器下构建良好并且可以正常执行。将文件上传到服务器后,代码隐藏似乎不知道其他 .cs 文件。

使我的 aspx 应用程序继承其他 .cs 文件的正确方法是什么?

--- 更新 --- 由于我并没有真正找到我需要的答案,所以让我对我正在做的事情更明确一点:

我有三个文件:

默认.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">

默认.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 服务器。正在发布的文件的确切列表是:

  • 默认.aspx
  • 默认.aspx.cs
  • App_Code/UtilClasses.cs
  • 网络配置
4

3 回答 3

3

看来您有部署问题。

只需将您的 Web 应用程序/站点发布(在构建菜单中有一个发布项)到一个文件夹,然后将该文件夹中的文件移动到您的服务器。

我认为您的目录中有旧的程序集文件和新类。

希望这可以帮助

于 2009-02-13T06:35:12.390 回答
1

您可以使用部分类。添加一个文件 ( *.cs) 并将您的类定义为部分。这样,您就可以分发您的方法,属性另一个文件

于 2009-02-13T13:38:09.860 回答
0

这是在您的 Web 应用程序中组织代码的一个非常常见的问题。这里有一些提示可以帮助您解决问题。

  1. 如果使用单个项目并且它是 ASP.net 网站项目,请将您的 .cs 文件放在 app_code 文件夹中。

  2. 明智地使用名称空间并跟踪哪个名称空间中的内容。如果你有类似 Resharper 的东西,它可以保存这个任务。

  3. 理想情况下,您的 Web 项目中应该只有与页面相关的类和实用类。使用 C# express 为其他功能创建库。使用 NUnit/MbUnit 或类似工具测试这些库。

  4. 如果您怀疑某些东西是否在 Cassini 上运行而不是在 IIS 上运行。开发或本地 IIS 是唯一的解决方案。

希望有帮助!

于 2009-02-13T06:40:33.703 回答