常见的 Web 项目转换问题及解决方案(转载) 6
点击次数:24 次 发布日期:2008-11-26 12:02:50 作者:源代码网
|
源代码网推荐 下面是您偶尔会遇到的不太常见的转换问题。 源代码网推荐 源代码网推荐 问题 11:备份文件夹位于 Web 项目文件夹中 源代码网推荐 源代码网推荐 前面提到过,Visual Studio 2005 通常将一个文件夹或子文件夹中的所有文件都认为是 Web 项目的一部分。默认情况下,转换向导将在安全的位置创建 Web 项目的备份,但是默认情况下,用户可能会改写它。如果将备份文件夹放在 Web 应用程序的文件夹树上,则会获得这个含义模糊的生成错误: 源代码网推荐 源代码网推荐 Error 1 - It is an error to use a section registered as allowDefinition="MachineToApplication" beyond application level 源代码网推荐 如何修复 源代码网推荐 源代码网推荐 请确保备份位置不在 Web 应用程序的根文件夹或子文件夹中! 源代码网推荐 源代码网推荐 问题 12:多个项目位于同一个位置 源代码网推荐 源代码网推荐 如果有一个 Web 项目,它与同一个解决方案中的另一个项目共享一个文件夹位置,则 Visual Studio 2005 将该文件夹中找到的所有文件看作单个 Web 应用程序的一部分。 源代码网推荐 源代码网推荐 如果它们都是 Web 项目并且它们是真正分离的(即自包含的),则将它们转换成一个 Web 应用程序可能不会有问题。然而,如果是以下情况,您可能希望保持这些项目是分离的: 源代码网推荐 源代码网推荐 • Web 项目和客户端项目的混合体 源代码网推荐 源代码网推荐 • 使用了不同的代码语言 源代码网推荐 源代码网推荐 • 审美原因 源代码网推荐 源代码网推荐 源代码网推荐 如何修复 源代码网推荐 源代码网推荐 如果它们是 Web 项目和客户端项目的混合,则只需要将客户端项目文件移到它们自己的文件夹中。 源代码网推荐 源代码网推荐 如果使用了不同的代码语言,建议您将 Web 项目移到不同的文件夹中以便进行转换。以后,如果希望将这些 Web 项目合并成一个单独的、多语言的 Web 应用程序,则查看有关针对多种语言构建 App_Code 文件夹和 Web.config 的 Visual Studio 2005 文档,并手动将 Web 项目合并成一个 Web 应用程序。 源代码网推荐 源代码网推荐 问题 13:多个项目引用相同的文件 源代码网推荐 源代码网推荐 如果多个项目引用一组相同的文件,则这些公共文件可能会迁移两次。 源代码网推荐 源代码网推荐 如何修复 源代码网推荐 源代码网推荐 请确保只有一个项目文件引用给定的文件。 源代码网推荐 源代码网推荐 通常,多个项目引用一组相同的文件意味着文件夹中存在重复版本或旧版本的项目文件。在这种情况下,可以删除或重命名多余的项目文件以解决此问题。 源代码网推荐 源代码网推荐 如果确实需要多个 Web 引用一组相同的文件,最好将公共文件移到它们自己单独的客户端项目中,然后让多个 Web 项目引用单独的客户端项目。请参阅将 Web 项目转换到 Visual Studio 2005 的分步指南。 源代码网推荐 源代码网推荐 问题 14:无效的访问修饰符 源代码网推荐 源代码网推荐 转换完 Web 项目后,您将收到无效的访问修饰符错误。 源代码网推荐 源代码网推荐 由于 Visual Studio 2005 现在使用多个程序集,因此如果要从其他程序集访问成员变量和函数,需要更改它们的访问级别。 源代码网推荐 源代码网推荐 如何修复 源代码网推荐 源代码网推荐 检查您的代码,并更改访问级别以允许访问。通常,将修饰符更改为 public 将解决此问题。 源代码网推荐 源代码网推荐 注 在执行此操作之前,您应该始终关心成员变量或函数的安全性,即我们不建议您盲目执行此操作。 源代码网推荐 源代码网推荐 问题 15:转换排除的文件 源代码网推荐 源代码网推荐 转换向导不能转换排除的文件,因此如何才能让转换向导转换这些文件呢? 源代码网推荐 源代码网推荐 如何修复 源代码网推荐 源代码网推荐 转换之前,在 Web 项目中暂时包括希望转换的文件并确保它的生成操作没有设为“none”。 源代码网推荐 源代码网推荐 转换后,将转换该文件。然后,可以使用 Exclude from Project 功能(可以在解决方案资源管理器菜单上找到)再次排除该文件。 源代码网推荐 源代码网推荐 问题 16:重复的变量声明 源代码网推荐 源代码网推荐 转换后,您可能会发现通过客户端脚本声明的控件对象也在部分类中进行了声明。如下所示: 源代码网推荐 源代码网推荐 文件 ASP.NET 1.x 代码 源代码网推荐 Page1.aspx 源代码网推荐 function Form1_onfocus() { var myType = <asp:literal id="myTypeId" runat="server" />;} 源代码网推荐 源代码网推荐 Page1.ascx.cs 源代码网推荐 protected Literal myTypeId; 源代码网推荐 源代码网推荐 源代码网推荐 如何修复 源代码网推荐 源代码网推荐 设计上,转换向导不分析脚本,也就不会捕捉到该引用。要解决此问题,只需从部分类中删除声明,您的代码就可以进行编译。 源代码网推荐 源代码网推荐 文件 ASP.NET 2.0 代码 源代码网推荐 Page1.aspx 源代码网推荐 function Form1_onfocus() { var myType = <asp:literal id="myTypeId" runat="server" />;} 源代码网推荐 源代码网推荐 Page1.ascx.cs 源代码网推荐 // protected Literal myTypeId; 源代码网推荐 源代码网推荐 源代码网推荐 问题 17:子 Web 应用程序 源代码网推荐 源代码网推荐 前面提到过,Visual Studio 2005 通常将一个文件夹或子文件夹中的所有文件看作 Web 项目的一部分。然而,通过使用 IIS 管理器 (inetmgr) 将子文件夹设置为一个 IIS 虚拟文件夹,可以指定一个子文件夹作为它自己的 Web 应用程序。当 Visual Studio 2005 发现此虚拟文件夹时,它不会将该文件夹看作 Web 应用程序的一部分。如果您通过 HTTP 打开 Web 项目,该操作将起作用。 源代码网推荐 源代码网推荐 如果您通过文件位置打开 Web 项目,就会出现该问题。在这种情况下,Visual Studio 2005 不知道它是一个 IIS 配置的 Web 应用程序,并且不会发现说明子文件夹的 IIS 元信息是一个虚拟文件夹。Visual Studio 2005 现在将尝试打开并编译 Web 应用程序以及子 Web 应用程序。 源代码网推荐 源代码网推荐 如果您转换一个基于文件的 Web 项目,则转换向导将出现以下警告。 源代码网推荐 源代码网推荐 警告:该 Web 项目作为基于文件的 Web 应用程序进行转换。如果站点包含任何 IIS 元信息(例如,标记为虚拟路径的子文件夹),建议您关闭该 Web 站点,然后使用 Open Web Site 命令并选择 Local IIS 选项卡重新打开它。 源代码网推荐 源代码网推荐 如何修复 源代码网推荐 源代码网推荐 一定要使用 IIS 管理器 (inetmgr) 将子 Web 应用程序标记为虚拟目录,通过 HTTP 而不是文件位置来打开 Web 项目,这样就能找到 IIS 元信息。 源代码网推荐 源代码网推荐 问题 18:OnInit() 未删除 源代码网推荐 源代码网推荐 在 Visual Studio®.NET 2003 中,设计人员向代码隐藏类文件中添加了自动生成的成员函数 OnInit() 和 InitializeComponent()。Visual Studio 2005 不使用这些函数,但如果存在这些函数,则会调用它们。转换向导没有删除这些函数。 源代码网推荐 源代码网推荐 这一行为是构划好的,因为向导不知道这些函数内是否存在用户代码,因此代码隐藏文件中的代码原样保留。 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
