Razor 为什么我需要重建整个解决方案时在cshtml文件中进行更改

Razor 为什么我需要重建整个解决方案时在cshtml文件中进行更改,razor,visual-studio-2015,rebuild,Razor,Visual Studio 2015,Rebuild,我想知道为什么每次我修改.cshtml文件以查看web上的更改时都需要重新构建整个解决方案。当我只想检查html中的一些小更改时(例如,将元素添加到将由模型中的值填充的表中),这会花费很多时间,而且很烦人 谁能给我解释一下吗?我在这方面不是很有经验,我想了解更多:)晚会迟到了吗 我在VS2019 RC2中遇到了同样的问题,当时我正在使用基于Razor组件应用程序模板的out the oven,still warm演示项目。为了使每个变更生效,我必须重建项目。我排除了浏览器缓存问题以及我能想到或在

我想知道为什么每次我修改.cshtml文件以查看web上的更改时都需要重新构建整个解决方案。当我只想检查html中的一些小更改时(例如,将
元素添加到将由模型中的值填充的表中),这会花费很多时间,而且很烦人

谁能给我解释一下吗?我在这方面不是很有经验,我想了解更多:)

晚会迟到了吗

我在VS2019 RC2中遇到了同样的问题,当时我正在使用基于Razor组件应用程序模板的out the oven,still warm演示项目。为了使每个变更生效,我必须重建项目。我排除了浏览器缓存问题以及我能想到或在网上发现的所有其他问题

我发现在.csproj文件中,razor文件扩展名设置为.cshtml:

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <LangVersion>7.3</LangVersion>
    <_RazorComponentInclude>Components\**\*.*cshtml*;</_RazorComponentInclude>
  </PropertyGroup>

netcoreapp3.0
7.3
组件\***.*cshtml*;
…而实际的文件扩展名是.razor。将.razor文件重命名为.cshtml扩展名后,一切都按预期工作


注意,另一种方法是编辑.csproj文件以查找.razor扩展名,因为我不想接触的两个stock.target文件中存在冲突。

这取决于更改。 如果这是一个彻底的改变,是的,您需要构建(编译DLL)。如果不是,那你就不会。 Razor语法是c#的一种视图语法。它在视图中使用,并通过Razor视图引擎转换为html。
作为C#代码,您需要通过构建或重建来生成它的IL。基本上,您是告诉编译器根据您的更改生成一个新的IL。而web服务器使用DLL运行应用程序。

您确定这不是缓存问题吗?如果您使用的是Chrome或Firefox,请保持开发工具处于打开状态,然后右键单击浏览器中的刷新图标以对页面进行硬重新加载。我确信,我总是使用硬重新加载和清除缓存来重新加载页面。还尝试重新启动IIS。真奇怪。我还认为它是在运行时编译的,因为我发布了这个问题,因为我对它感到困惑。你在IIS中托管它?网站是发布到那里的文件夹中,还是在源文件夹外托管网站?如果使用Visual Studio的主机进程而不是IIS,是否会发生这种情况?是的,它托管在IIS中,但我不知道它是如何发布的:(我怎样才能发现呢?很抱歉,我无法澄清我们的工作环境。我对这一点不太熟悉,也不太了解:PI也有这个问题,有一个特定的项目。以前从未出现过这个问题。不知道是什么原因造成的,但这很烦人。