2010-02-17 235 views
39

我尝试使用VS 2010 RC创建动态数据网站。尝试创建一个App_Code文件夹,我将放入一个LINQ to SQL类失败。当我选择了 '添加文件夹ASP.NET' 添加的文件夹,我只好选择只创建以下文件夹:VS 2010中缺少App_Code文件夹

  • App_GlobalResources文件
  • App_LocalResources文件
  • 的App_Data
  • App_Browsers文件
  • 主题

App_Code文件夹发生了什么变化?

回答

35

为什么不创建另一个项目,一个类库,并把它放在那里。这是将这些课程与其他网站分开的最好方法。

要回答关于App_Code文件夹的特定问题,可以在WebSite项目中将其作为Asp.Net文件夹供您选择。但是从一个Web应用程序项目,你可以创建一个新文件夹并将其命名为App_Code,它将工作得很好。这是从Visual Studio 2010 RC开始的。

+0

这是一个演示应用程序。我希望它尽可能简单。 – Vadim 2010-02-17 01:41:17

+1

我仍然会为您的dal课程添加另一个项目。它确实不会增加任何复杂性,并且如果您需要提高生产级别,则可以再次使用它。 – 2010-02-17 01:48:51

+1

我同意这个建议,但这真的不能回答这个问题。 – 2010-02-17 02:24:32

2

我还发现这是有趣的,它是失踪。事情是你“不要”需要创建App_Code文件夹,你只需将类添加到任何新文件夹。

在VS 2005中,App_Code之外的任何类都会给出编译错误。

所以我也想知道他们为什么决定删除这个约束?是因为有人抱怨过,还是设计理念发生了变化,这被认为是必要的?

23

您不能/不应该将App_Code文件夹添加到Web应用程序,因为此文件夹是为通过asp.net进行的运行时编译而设计的,并且Web应用程序项目专为您将您的网站预编译为一个dll可以在Bin文件夹中找到并部署到您的网站。如果你手动添加这个,你最终可能会遇到名称冲突,因为该类将被预编译为dll,然后asp.net将再次尝试在运行时重新编译。

因此,对于Web应用程序项目,您应该改为添加一个名为“CodeFolder”的文件夹,然后在其中添加您的类。然后右键单击该类文件上的属性,并将其构建配置设置为编译而不是内容。

我正在为www.athenatennis.com.sg开发自己的web项目,并且正在通过类似的学习曲线。

在VS 2010中
+7

“你不能/不应该/不应该将App_Code文件夹添加到Web应用程序,因为此文件夹是为运行时编译设计的” 我认为应该编辑接受的答案以包含此内容。它解释了为什么**原始问题是一个不好的方法,而不仅仅是建议最佳实践。 @Chris Conway暗示创建一个App_Code文件夹没有问题,但是我已经通过几种方式亲自对它进行了刻录。 – CrazyPyro 2012-02-15 18:32:12

0

,你需要创建一个解决方案,然后单击鼠标右键 - >添加新的网站,那么当你添加类,LINQ2SQL等,VS将创建App_Code文件夹为您

0

如果你想app_code文件夹,您必须创建“ASP.NET网站”。完成后,右键单击网站(Solution Explorer) - >添加ASP.NET文件夹 - > App_Code。

如果您正在查看“ASP.NET web应用程序”内的app_code文件夹,那么您正在浪费时间。

0

如果您创建了一个类,它会询问您是否要将其添加到应用程序代码文件夹中。

3

您可以手动创建App_Code文件夹并在其中添加您的类。 您需要注意的一件事是...在文件属性中,确保构建动作设置为编译

+0

这是超级重要!默认情况下,它似乎没有在.NET 4.0+ Web应用程序中的App_Code文件夹以外的类文件中设置此值(不确定低版本)。这导致我所有的IHttpModules在测试时都无法编译和启动,直到它们被设置为编译。 – Jacob 2014-04-02 14:00:38

0

从添加新项目中添加新类很容易Visual Studio 2010会自动显示消息“您要将文件放在App_Code文件夹中”。只需单击确定。![enter image description here] [1]