常见的 Web 项目转换问题及解决方案(转载) 5
点击次数:30 次 发布日期:2008-11-26 12:02:52 作者:源代码网
|
源代码网推荐 源代码网推荐 转换之后,可以从项目中删除任何不想要的、以前排除的文件。您也可以使用“Exclude from Project”功能(可以在解决方案资源管理器找到)排除它们,通过使用安全的扩展名“.exclude”对它们进行重命名,以便有效地从 Web 应用程序中删除它们。 源代码网推荐 源代码网推荐 注 用“.exclude”扩展名排除的文件仍然是 Web 项目的一部分,但不对它们进行编译,如果它们碰巧在服务器上,IIS/ASP.NET 也不支持这些文件。注 未来版本的转换向导将更主动,并且在它认为安全的情况下将排除文件。 源代码网推荐 源代码网推荐 问题 6:孤立的 resx 文件 源代码网推荐 源代码网推荐 Visual Studio .NET 2003 为 Web 窗体和用户控件生成了一个 resx(资源)文件。通常情况下,用户不使用这些文件,因为它们是自动生成的并且可能会改写用户添加的代码。 源代码网推荐 源代码网推荐 转换之后并不删除这些 resx 文件,因为迁移向导不确定用户是否已经添加了需要保存的资源。 源代码网推荐 源代码网推荐 如何修复 源代码网推荐 源代码网推荐 查看生成的 resx 文件并将用户数据保存到它自己的资源文件中。将该数据合并到一个资源文件中会更好。 源代码网推荐 源代码网推荐 根据需要将该资源文件移到特殊的文件夹 App_GlobalResources or App_LocalResources 中,这样 Web 应用程序就可以使用它了。 源代码网推荐 源代码网推荐 用这种方式保存用户数据后,从 Web 项目中删除生成的 resx 文件。 源代码网推荐 源代码网推荐
源代码网推荐 问题 7:代码隐藏文件中的额外类型 源代码网推荐 源代码网推荐 在 Visual Studio®.NET 2003 中,通过在 Web 窗体或用户控件之一的代码隐藏文件中存储类型,有可能在不同页之间共享类型(例如,结构、枚举、接口、模块等)。 源代码网推荐 源代码网推荐 该模型在 Visual Studio 2005 中是中断的,因为一个 Web 窗体和多个用户控件编译到它们自己的程序集中,其他类型不再可发现。 源代码网推荐 源代码网推荐 如何修复 源代码网推荐 源代码网推荐 转换向导完成应用程序转换后,就会将任何非私有的额外类型移到 App_Code 文件夹中它自己的独立代码文件中。由于必须跨程序集工作,因此您可能还需要将访问修饰符更改为 public。通过 Web 应用程序,共享类型将进行自动编译,并且是可发现的。 源代码网推荐 源代码网推荐 问题 8:访问自动生成的控制变量 源代码网推荐 源代码网推荐 在 Visual Studio®.NET 2003 中,代码隐藏的类文件包含用户和自动生成的设计器代码。后者可以包含控制变量声明和页功能。虽然不建议这样做,但是一些开发人员将控制变量的访问权限更改为 Public,这样就可以在它们的类之外对它们进行修改。示例如下所示: 源代码网推荐 源代码网推荐 文件 ASP.NET 1.x 代码 源代码网推荐 UserCtrl1.ascx 源代码网推荐 <asp:Label id="Label1" runat="server">UC1</asp:Label> 源代码网推荐 源代码网推荐 UserCtrl1.ascx.cs 源代码网推荐 public System.Web.UI.WebControls.Label Label1; 源代码网推荐 源代码网推荐 Page1.ascx.cs 源代码网推荐 UserCtrl1 uc1 = (UserCtrl1)LoadControl("~/UserCtrl1.ascx");uc1.Label1.Text = "Foo"; 源代码网推荐 源代码网推荐 源代码网推荐 在 Visual Studio 2005 中,因为是通过部分类将用户和自动生成的设计器代码分开了,所以此更改不起作用。部分类允许一个类跨多个文件,并且用于维护用户和自动生成的代码之间干净的分隔。 源代码网推荐 源代码网推荐 如何修复 源代码网推荐 源代码网推荐 通常情况下,建议您将代码更改为不依赖于自动生成的代码的更改的访问级别。然而,如果代码中有数百个位置调用诸如自动生成这样的变量并且需要快速运行代码,那么有一个很有用的替代方案。您可以将原始控制变量重命名为其他名称,然后创建一个公有属性来访问重命名的控制变量。例如: 源代码网推荐 源代码网推荐 文件 ASP.NET 2.0 代码 源代码网推荐 UserCtrl1.ascx 源代码网推荐 <asp:Label id="p_Label1" runat="server">UC1</asp:Label> 源代码网推荐 源代码网推荐 UserCtrl1 hidden partial class 源代码网推荐 // this will be auto-generated in the hidden, partial classprotected System.Web.UI.WebControls.Label p_Label1; 源代码网推荐 源代码网推荐 UserCtrl1.ascx.cs 源代码网推荐 public System.Web.UI.WebControls.Label Label1 { get { return p_Label1; } set { p_Label1 = value; }} 源代码网推荐 源代码网推荐 Page1.ascx.cs 源代码网推荐 UserCtrl1 uc1 = (UserCtrl1)LoadControl("~/UserCtrl1.ascx");uc1.Label1.Text = "Foo"; 源代码网推荐 源代码网推荐 源代码网推荐 问题 9:无法切换到设计视图 源代码网推荐 源代码网推荐 Visual Studio 2005 中内置的新 Visual Web 设计器在正确的 HTML 方面比 Visual Studio .NET 2003 更严格。如果 aspx 页包含不匹配的标记或格式不正确的 HTML,则该设计器将不允许您在 Visual Studio 2005 内切换到设计视图。相反,您将被限制在代码视图,直到修复了问题为止。发生该问题的原因是 Visual Studio 2005 内置有新的源代码保留和验证功能。 源代码网推荐 源代码网推荐 如何修复 源代码网推荐 源代码网推荐 为了避免此问题,您所能做的就是确保 aspx 页中的标记格式正确。如果在从代码视图切换到设计视图的后转换时遇到问题,则该问题几乎肯定是错误的标记。 源代码网推荐 源代码网推荐 问题 10:无法解析文件名 源代码网推荐 源代码网推荐 您可能会看到有些模糊的错误消息,告诉您无法解析某个文件。这意味着在 HTML 标记上找不到 ‘Codebehind’ 或 ‘Src’ 属性。 源代码网推荐 源代码网推荐 如果您的 Web 窗体或用户控件不包含以上任何一个属性,则该向导找不到匹配的代码隐藏文件,也无法转换该页。 源代码网推荐 源代码网推荐 如何修复 源代码网推荐 源代码网推荐 如果这碰巧是一个纯 HTML 页,则该错误可以忽略,如果应用程序具有使用 aspx 扩展名的 HTML 页,则会经常遇到此错误。 源代码网推荐 源代码网推荐 为了避免此问题,请确保为 html 文件正确命名,并且在 HTML 标记上的 Web 窗体和用户控件中使用 ‘Codebehind’ 和 ‘Src’ 属性。 源代码网推荐 源代码网推荐 注 在下一个版本的 Web 项目迁移向导中,通过使用以下消息可以使该错误更易于描述。 源代码网推荐 源代码网推荐 • “警告:无法解析文件 %1,因为找不到任何代码隐藏属性或页/控制指令。” 源代码网推荐 源代码网推荐 • “警告:代码文件 %1 是无效的代码文件。” 源代码网推荐 源代码网推荐 源代码网推荐 返回页首 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
