【问题标题】:Intellisense missing in App_Code, for bin dlls in Website ProjectApp_Code 中缺少智能感知,用于网站项目中的 bin dll
【发布时间】:2014-04-29 13:14:01
【问题描述】:

我在/App_Code/App_Code/[subfolder] 中创建的任何类都没有本地智能感知。

也就是说 - 我有系统 dll 的智能感知,例如 string.[member] 等。但无法让它识别 App_Code 本地的任何类(包括它自己),或 /bin 文件夹中引用的 dll。

虽然我在成员函数的范围内确实有智能感知。 (即局部变量或函数参数)

注意

  • 这是一个网站项目,而不是一个 Web 应用程序项目。
  • 我已尝试重置所有 Visual Studio 设置并清除 AppData for VS 中的智能感知信息。
  • 我正在使用 Visual Studio 2012 版本。 11.0.61030.00 更新 4
  • 项目使用.NET 4.0
  • 如果我将类移到 App_code 文件夹之外,它们会在智能感知中完美注册。
  • 没有选项可以将文件的 Build 设置设置为 Compile,因为这是一个网站项目而不是 Web 应用程序。

【问题讨论】:

  • 这些类是否在命名空间中?
  • @DeadlyChambers,它们不是,但我尝试将它们添加到一个,但没有成功。

标签: c# visual-studio-2012 intellisense web-site-project app-code


【解决方案1】:

IMO,您应该将您的代码移出App_Code。在 .net 4.5(和 4.0)中,您的后台代码被编译为 dll,因此我认为将您的代码放入 App_Code 没有任何好处。如果有人提出不同的建议,我很乐意听到。

话虽如此,在你的根项目下创建一个或多个文件夹并将你的代码放在那里。

MyWebsite
 - DataLayer
     MyDataLayer.cs
Default.aspx

在此示例中,您将能够访问您的课程DataLayer.MyDataLayer

更好地为您的 aspx.cs 代码隐藏文件中不需要的代码创建一个新库。

【讨论】:

  • App_code 中的代码直到运行时才被编译。它将存储源代码而不是编译代码。但正如我所说,我没有看到任何好处。我和你有同样的问题。创建文件夹并将代码放入其中更容易。见这里msdn.microsoft.com/en-us/library/t990ks23(v=vs.90).aspx
【解决方案2】:

App_Code 中的新代码文件将具有构建操作“内容”,因此您没有智能感知。 所以右键单击您的代码文件并单击“属性”,在属性窗口中将“构建操作”更改为“编译”。

然后重新打开您的代码文件。

【讨论】:

  • 我使用的是 Visual Studio 2012,它在属性窗口中没有这个选项。你知道这些每个文件的属性通常存储在哪里供 VS 读取吗?解决方案文件可能吗?
  • 是的,我很抱歉。在 2010 年,它仍然是可能的。 2013年刚测试过,类文件的属性窗口里面没有“Build Action”。
猜你喜欢
  • 2012-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-24
  • 2019-02-25
  • 2015-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多