重命名 Blazor 组件文件名时出错

Posted

技术标签:

【中文标题】重命名 Blazor 组件文件名时出错【英文标题】:Getting error when renaming Blazor component file names 【发布时间】:2021-03-31 11:28:22 【问题描述】:

标题说明了这一点。这不是真正的世界末日,但它是一个烦恼。如果我重命名 Blazor 组件,IntelliSense 会中断并仍然接受旧名称,直到我重新启动 Visual Studio。我在尝试重命名时也遇到错误。

我正在使用Visual Studio 2019 Professional。这是 VS 中的已知问题吗?

这是错误的堆栈跟踪:

StreamJsonRpc.RemoteInvocationException:意外错误 在 StreamJsonRpc.JsonRpc.d__1331.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.CodeAnalysis.Remote.RemoteEndPoint.<InvokeAsync>d__211.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(异常异常对象) RPC 服务器异常: System.InvalidOperationException:意外错误 在 Roslyn.Utilities.Contract.Fail(字符串消息) 在 Roslyn.Utilities.Contract.ThrowIfFalse(布尔条件) 在 Microsoft.CodeAnalysis.Remote.RemoteWorkspace.SolutionCreator.d__14.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Microsoft.CodeAnalysis.Remote.RemoteWorkspace.SolutionCreator.d__13.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 Microsoft.CodeAnalysis.Remote.RemoteWorkspace.SolutionCreator.d__12.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Microsoft.CodeAnalysis.Remote.RemoteWorkspace.SolutionCreator.d__10.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 Microsoft.CodeAnalysis.Remote.RemoteWorkspace.SolutionCreator.d__8.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Microsoft.CodeAnalysis.Remote.RemoteWorkspace.SolutionCreator.d__7.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Microsoft.CodeAnalysis.Remote.RemoteWorkspace.SolutionCreator.d__6.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(异常异常对象) --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Microsoft.CodeAnalysis.Remote.RemoteWorkspace.d__10.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Microsoft.CodeAnalysis.Remote.RemoteWorkspace.d__12.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Microsoft.CodeAnalysis.Remote.CodeAnalysisService.c__DisplayClass29_0.d.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Microsoft.CodeAnalysis.Remote.ServiceBase.d__16`1.MoveNext()

【问题讨论】:

【参考方案1】:

这是 VS 中的一个已知问题吗?

我猜是这样,至少对我们俩来说是这样……我的解决方案:双击 Blazor 的项目名称,然后删除 VS 添加的所有设置,以参考所做的命名更改。

当然,你可以在 github 上发布 issue...

更新:

注意这个实验: 我将Index.razor重命名为Index.txt,然后打开了csproj文件。 VS 添加了这些设置:

<ItemGroup>
    <None Remove="Pages\Index.txt" />
  </ItemGroup>

  <ItemGroup>
    <Content Include="Pages\Index.txt" />
  </ItemGroup>

我再次将 Index.txt 重命名为 Index.razor...VS 已删除这些元素。没有问题。我使用的是社区版,但是当我使用专业版时,我不得不手动删除它们......但是,我花了一些时间才意识到这一点(而不是通过改变而不是聪明......)

另一个实验:将 Counter.razor 重命名为 Counter2.razor... 尝试在索引页面中为 Counter2 添加一个元素:&lt;Counter2 /&gt;,但被拒绝。我仍然可以使用不再存在的&lt;Counter /&gt;。只有在关闭索引页面并打开它之后,它才识别出新的变化......

【讨论】:

好的,我确实继续在他们的 github 上提交了一个问题。您能否帮助扩展您的解决方法的含义?如果我双击该项目,我会进入 csproj 文件,但我看不到任何与命名更改相关的设置。 啊,我明白了。我没有意识到我可以关闭文件并重新打开它。我正在完全重新启动VS。所以我想这会好一点。无论如何,这不完全是我所希望的解决方案,但我想这是我们在修复之前最好的解决方案,所以我会继续并将其标记为已回答,因为它会在这一点上得到:)谢谢!跨度>

以上是关于重命名 Blazor 组件文件名时出错的主要内容,如果未能解决你的问题,请参考以下文章

Blazor:在 Razor 文件中定义命名空间

为啥我改文件夹的名字的时候出现重命名文件或文件夹出错

文件夹为啥无法重命名?

文件夹重命名出现非法字符文件

如何批量重命名文件夹下的Excel文件

VBS 重命名一个文件夹内的全部文件