C# MSBuild和Visual Studio因错误的显式接口声明而崩溃

C# MSBuild和Visual Studio因错误的显式接口声明而崩溃,c#,msbuild,visual-studio-2019,C#,Msbuild,Visual Studio 2019,我痛苦地偶然发现了一种使MSBuild.exe在Visual Studio 2019中硬崩溃的方法。VS2019中的报告机制似乎不起作用(登录时不会说类似于的话\“path\”参数必须是string类型。),报告问题的网页上说要通过VS来完成,所以我不知道还能在哪里发布此消息 问题可能出在我的安装上,而不是编译器上,但我似乎也能用它在线挂起C#编译器。运行修复安装没有帮助。我认为这可能是新的C#8编译器,因为旧的编译器似乎给出了正确的显式接口声明,只能在类或结构中声明编译错误,而不是超时 这很容

我痛苦地偶然发现了一种使MSBuild.exe在Visual Studio 2019中硬崩溃的方法。VS2019中的报告机制似乎不起作用(登录时不会说类似于
的话\“path\”参数必须是string类型。
),报告问题的网页上说要通过VS来完成,所以我不知道还能在哪里发布此消息

问题可能出在我的安装上,而不是编译器上,但我似乎也能用它在线挂起C#编译器。运行修复安装没有帮助。我认为这可能是新的C#8编译器,因为旧的编译器似乎给出了正确的
显式接口声明,只能在类或结构中声明
编译错误,而不是超时

这很容易造成,所以要小心,因为一旦你输入了这个,它就会严重崩溃,而你甚至不需要保存文件或点击构建,按需编译器会在你输入这个时终止

如果您确实设法保存了文件,那么在按需编译文件后,VS将立即消失(因此,如果文件已打开,则在启动时立即消失,或者在手动打开文件后立即消失)。如果保存了文件,不要打开它,然后点击build,您可以看到由于堆栈溢出异常,生成失败。在这种情况下,VS不会死亡

正常接口(目前没有问题):

硬崩溃(MSBuild出现堆栈溢出,而VS2019处理得不太好):

如果有人能(或不能)复制这个(应该很容易测试)让我知道,也许你可以向微软报告。

[更新答案]

嗨,戴夫

我们正在努力解决登录问题。我们的团队在最新的预览版(V16.4预览版5)中进行了修复。如果你能给一个尝试报告,让我们知道如何进行。如果您看到错误,请将完整的错误文本发送给我。您可以在此处下载预览:

我还为您创建了一份报告,作为解决方法。这是你可以追踪它的链接。请访问该链接并对该问题进行投票,以便获得进展通知:

谢谢 肖恩


Visual Studio反馈系统

也许这是一个显而易见的问题,但为什么需要编写这样的代码?我是指具有显式接口声明的成员itself@PavelAnikhouski我不需要这样做,但如果您碰巧键入或粘贴它,它会立即硬崩溃,例如,可能您只是键入了一个显式的实现,您正计划将其拉到一个接口中。因此,您复制显式实现并将其粘贴到接口中,计划删除显式部分。但是你不能走那么远,因为VS死了。这应该是一个编译时错误,但是编译器得到了堆栈溢出。我有16.3.9,但是我仍然得到了问题。大而长的堆栈跟踪,消息
错误登录:“{”stack:“TypeError[ERR\u INVALID\u ARG\u TYPE]:路径\”\“参数必须是字符串类型。收到的类型未定义。
。可能与IE版本或其他相关。如果这有关系的话,我使用的是Windows 7。我现在已更新到16.4,提交反馈功能现在似乎正在工作。”。
public interface ITest {
   int Property { get; }
}
public interface ITest {
   int ITest.Property { get; }
}