关于在Visual Web Developer 2008 Express环境中正确编译和执行的内容以及在我的Web服务器上失败的内容,我遇到了很多不一致的问题。
特别是,我的Web Developer项目中有一个aspx和aspx.cs代码隐藏,以及一些额外的.cs文件。它构建良好,并在开发服务器下执行正常。 一旦我将文件上传到我的服务器,代码隐藏似乎并不知道其他.cs文件。
使我的aspx应用程序继承其他.cs文件的正确方法是什么?
---更新--- 由于我没有真正找到我需要的答案,让我对我正在做的事情更加明确:
我有三个文件:
Default.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服务器上收到编译错误:
它在Web Developer 2008中编译得很好。该解决方案是一个网站,它通过FTP自动发布到我的网络服务器。要发布的文件的确切列表是:
答案 0 :(得分:3)
您似乎遇到了部署问题。
只需发布(在构建菜单中有一个发布项目)将您的网络应用程序/网站添加到文件夹中,然后将该文件夹中的文件移动到您的服务器。
我认为你的目录中有旧的汇编文件和新类。
希望这会有所帮助
答案 1 :(得分:1)
您可以使用部分类。添加文件(* .cs)并将您的类定义为部分。这样,您可以分发您的方法,属性和其他文件
答案 2 :(得分:0)
这是在Web应用程序中组织代码的一个非常常见的问题。以下是一些可以帮助您解决问题的建议。
如果使用单个项目并且它是ASP.net网站项目,请将.cs文件放在app_code文件夹中。
明智地使用名称空间并跟踪哪个名称空间。如果你有像Resharper这样的东西,它会保存这个任务。
理想情况下,您的Web项目中应该只有页面相关和util类。使用C#express创建库以用于其他功能。使用NUnit / MbUnit等测试这些库。
如果您怀疑某些内容是在Cassini上运行而在IIS中运行的话。开发人员或本地IIS是唯一的解决方案。
希望有所帮助!