在学习Razor类库(RCL)功能期间,我发现了一个非常奇怪的错误,这使我花费了数小时才能确定。尝试调试项目时,我无法在路径名中登录#
。
复制步骤:
- 将存储库git@github.com:zoka-cz/CSharpDirNameProblem.git克隆到所需的任何目录中(迭代1-确保
#
不在路径名中,例如c:\tmp\CSharpDirNameProblem\
|迭代2-确保#
在目录名称,例如c:\tmp\C#\CSharpDirNameProblem\
) - 开放式解决方案
src\CSharpDirNameProblem.sln
(我有VS2017,不确定其他版本) - 将
WebApplication1
设置为启动项目并运行。 - 在打开的浏览器中,单击
About
页并观察不同的结果。 - 从第一点开始进行第二次迭代,否则完成。
提到的存储库是用于重现此问题的最小设置。首先,它是用很少的剃须刀视图创建的RCL项目。然后创建WebApplication
(MVC Web应用程序)项目,添加RCL作为参考,更改About
页面以测试RCL项目视图。很简单的。
但是,当我的项目路径中有#
标志时,则它无法从RCL中找到视图。该Web应用程序可以运行,但是找不到RCL视图。您可能会想象我花了几个小时来发现问题。现在,我知道我的名字中不能包含#
,但是我想知道为什么,以及是否可以解决此问题(我的项目很多都位于我的...Projects\C#
目录中)。
有人知道导致问题的原因吗?是IIS Express吗?是Visual Studio吗?是AspNetCore的问题吗?我可以单独解决吗?我可以自己找到问题的根源吗?还是在某处报告?