在学习Razor类库(RCL)功能期间,我发现了一个非常奇怪的错误,这使我花费了数小时才能确定。尝试调试项目时,我不能在路径名中输入#
。
重现步骤:
将存储库[email protected]: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的问题吗?我可以单独解决吗?我可以自己找到问题的根源吗?还是在某处报告?
最佳答案
首先,这个问题是合法的,我能够使用Visual Studio 2019和.net core 3.0.100重现它。
我在bug report存储库中提出了一个AspNetCore(此处引用您的问题),因为它看起来不像我们可以提出的解决方法。
好消息是它已经是众所周知的issue,并且正在得到解决。不好的消息是它要等到下一个主要版本才能得到解决。
关于c# - 在VS2017中调试Razor类库时,“#”符号不能位于csproj/sln路径名中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58827705/