Visual Studio 忽略了我在 ASP.net 项目中的语法错误
Visual Studio ignores my syntax errors in ASP.net project
我将 visual studio 解决方案从使用 "website" 迁移到 "ASP.net project" 以便能够使用 Web.config 转换。
现在,在迁移之后,Visual Studio 在我 clean/build/rebuild 我的解决方案时完全忽略了语法错误。
这些语法错误将在我打开 Web 应用程序时立即显示在我的浏览器中 - 但在编译时看到它们会有所帮助。它们曾经显示在我的错误列表中 - 我现在只能在其中看到一些无趣的警告。
我仍然可以 运行 我的 Web 应用程序,并且一切正常。
如何配置我的解决方案,以便在编译时出现编译错误?
编辑(回应answers/comments):
- 一旦我打开 .cs 文件(通过双击它),就会显示语法错误(在文件内部和错误列表视图中)。
- 我使用 Microsoft Visual Studio Professional 2012(版本 11.0.61030.00 更新 4)和 .NET 4.5.50709(德语版)。我正在本地部署到 Visual Studio 的 IIS。
- 我没有使用 NuGet,我的所有资源都在一个项目中
- 我实际上只提供了一个使用 WCF 的 REST 后端。我只有 C# 源代码。语法错误在我的 c# 类.
- 语法错误在我的 App_Code 文件夹中的 .cs 文件中。
- 当我将我的网站迁移到一个项目时,我手动编辑了我的 .csproj 文件(添加了缺失的 "Content Include"s 等)。我希望这不会破坏我的解决方案...
- 我没有使用默认的 "DEBUG" 和 "RELEASE" 构建配置,而是创建了我自己的特定于服务器的配置(以每个服务器的名称命名)。
- (@Guvante) 当我编辑构建配置时,我在 "project context table" 中看到一行。第一行也是唯一一行显示:
- 我的项目名称
- 下拉列表中的配置名称
- 平台"Any CPU"
- 勾选标记 "build"
- 空白字段"deploy"
- 我的错误列表被过滤到 "current project",它不会显示语法错误,无论我 select 在我的解决方案资源管理器中的哪个项目。
- 有时(无法确定确切时间)VS 在开始调试时显示警告,告诉我我的模块是使用优化构建的或没有调试信息。不知道这个警告是否与这个问题有关。
成功构建的控制台输出(尽管源包含语法错误)是:
1>------ Erstellen gestartet: Projekt: MyProject, Konfiguration: localdev Any CPU ------
1> 我的项目 -> C:\path\MyProject\bin\MyProject.dll
========== Erstellen: 1 erfolgreich, 0 fehlerhaft, 0 aktuell, 0 übersp运行gen ==========
- 我保存,关闭 VS,重启机器,重新打开 VS,闭上眼睛,交叉手指 - @chief-two-pencils ;)
如果你有 Nuget 包 运行 更新包
尝试卸载项目并将其重新加载到解决方案中
这对我有用
您可以在 .csproj 文件中更改
<Content Include="C:\...\foo.cs" />
回到
<Compile Include="C:\...\foo.cs" />
有关 MSDN documentation and this Whosebug question 的更多信息。
您应该将其更改为:
<Compile Include="....." />
build action 属性 上的 MSDN 文章说:
Compile - 文件被编译到构建输出中。此设置用于代码文件。
Content - 文件未编译,但包含在 Content 输出组中。例如,此设置是 .htm 或其他类型的 Web 文件的默认值。意味着它是一个可部署的项目项,它表示需要将文件复制到目标机器。另请注意,使用一键部署时将包含内容。
查看有关构建操作的更多信息here。
我将 visual studio 解决方案从使用 "website" 迁移到 "ASP.net project" 以便能够使用 Web.config 转换。
现在,在迁移之后,Visual Studio 在我 clean/build/rebuild 我的解决方案时完全忽略了语法错误。
这些语法错误将在我打开 Web 应用程序时立即显示在我的浏览器中 - 但在编译时看到它们会有所帮助。它们曾经显示在我的错误列表中 - 我现在只能在其中看到一些无趣的警告。
我仍然可以 运行 我的 Web 应用程序,并且一切正常。
如何配置我的解决方案,以便在编译时出现编译错误?
编辑(回应answers/comments):
- 一旦我打开 .cs 文件(通过双击它),就会显示语法错误(在文件内部和错误列表视图中)。
- 我使用 Microsoft Visual Studio Professional 2012(版本 11.0.61030.00 更新 4)和 .NET 4.5.50709(德语版)。我正在本地部署到 Visual Studio 的 IIS。
- 我没有使用 NuGet,我的所有资源都在一个项目中
- 我实际上只提供了一个使用 WCF 的 REST 后端。我只有 C# 源代码。语法错误在我的 c# 类.
- 语法错误在我的 App_Code 文件夹中的 .cs 文件中。
- 当我将我的网站迁移到一个项目时,我手动编辑了我的 .csproj 文件(添加了缺失的 "Content Include"s 等)。我希望这不会破坏我的解决方案...
- 我没有使用默认的 "DEBUG" 和 "RELEASE" 构建配置,而是创建了我自己的特定于服务器的配置(以每个服务器的名称命名)。
- (@Guvante) 当我编辑构建配置时,我在 "project context table" 中看到一行。第一行也是唯一一行显示:
- 我的项目名称
- 下拉列表中的配置名称
- 平台"Any CPU"
- 勾选标记 "build"
- 空白字段"deploy"
- 我的错误列表被过滤到 "current project",它不会显示语法错误,无论我 select 在我的解决方案资源管理器中的哪个项目。
- 有时(无法确定确切时间)VS 在开始调试时显示警告,告诉我我的模块是使用优化构建的或没有调试信息。不知道这个警告是否与这个问题有关。
成功构建的控制台输出(尽管源包含语法错误)是:
1>------ Erstellen gestartet: Projekt: MyProject, Konfiguration: localdev Any CPU ------ 1> 我的项目 -> C:\path\MyProject\bin\MyProject.dll ========== Erstellen: 1 erfolgreich, 0 fehlerhaft, 0 aktuell, 0 übersp运行gen ==========
- 我保存,关闭 VS,重启机器,重新打开 VS,闭上眼睛,交叉手指 - @chief-two-pencils ;)
如果你有 Nuget 包 运行 更新包
尝试卸载项目并将其重新加载到解决方案中
这对我有用
您可以在 .csproj 文件中更改
<Content Include="C:\...\foo.cs" />
回到
<Compile Include="C:\...\foo.cs" />
有关 MSDN documentation and this Whosebug question 的更多信息。
您应该将其更改为:
<Compile Include="....." />
build action 属性 上的 MSDN 文章说:
Compile - 文件被编译到构建输出中。此设置用于代码文件。
Content - 文件未编译,但包含在 Content 输出组中。例如,此设置是 .htm 或其他类型的 Web 文件的默认值。意味着它是一个可部署的项目项,它表示需要将文件复制到目标机器。另请注意,使用一键部署时将包含内容。
查看有关构建操作的更多信息here。