【发布时间】:2010-10-19 17:31:57
【问题描述】:
更新:所有这些问题都是为了在 Visual Studio 中将网站应用程序转换为 Web 项目。一旦我挖掘并找到了解决方案,我在下面标记为答案。
基本上,如果您想将网站项目升级/移动到 Web 项目,您会遇到许多错误。简短的操作方法在下面的答案中。谢谢大家的cmets和帮助。
旧问题和标题如下:
如何将命名空间 xx {} 包装到所有类文件中?
如何将命名空间包装到 web 项目(或任何项目)中的所有代码隐藏文件?
namespace MyDomain
{
// regular code here
}
长话短说……
我一直在转换一个外包到海外的项目。对于这样一个简单的网站(摇头),仅“网络”项目中就有超过 20,000 个文件。它是在 vs2005 中使用 VB.NET 和 C# 编写的(是的,都是编译)。它最初是一个网站应用程序。我已将其转换为 Web 应用程序,主要是因为您发布时会生成 8,000 个“临时”程序集。
好的,我正在转换到 VS2008。我已将所有代码转换为 C#。看起来不错。我已将所有特殊的 App_Code/VB 和 C# 代码引入单独的程序集中。
现在,当我尝试再次编译时,我会收到大量错误警报。我通过将代码隐藏文件包装在命名空间中来解决这些问题,并更新用户控件以使用新的命名空间。
但是……还有 5000 多个错误……求助!
alt text http://eduncan911.com/blog/thumbnail/4-15-2009.6-00-13.PM.png
也许还有其他方法?这是来自代码后的示例 sn-p:
public partial class MyHomepage_MyStuff_MyPosts : SecurePage
{ ... }
注意类名 MyHomepage_MyStuff_MyPosts。这是 /MyHomepage/MyStuff/MyPosts.aspx 文件所在位置的目录路径。
错误是代码隐藏文件找不到对正在使用的控件的引用。如:
ctl_website_rpt.RowCount = _totalCount;
这是一个在 ASPX 文件中名为“ctl_website_rpt”的控件(它们的命名约定)。 aspx 页面在页眉中有:
<%@ Page Title="My Posts" Language="C#"
MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true"
CodeFile="MyPosts.aspx.cs"
Inherits="MyHomepage_MyStuff_MyPosts" %>
也许我可以在其他地方引用此页面?无需将其更改为的命名空间?
namespace Website.MyHomepage.MyStuff
{
public partial class MyPosts
{ ... }
}
<%@ Page Title="My Posts" Language="C#"
MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true"
CodeFile="MyPosts.aspx.cs"
Inherits="Website.MyHomepage.MyStuff.MyPosts" %>
【问题讨论】:
标签: c# visual-studio namespaces code-behind