我在将刚刚迁移到dotnet core 6.0并加载到VS 2022中的项目,使用VS 2019编译时出现了此错误。
Error MSB6003 The specified task executable "sgen.exe" could not be run. System.ComponentModel.Win32Exception (0x80004005): The filename or extension is too long
似乎存在XmlSerialization因文件名过长而失败的已知问题。修复方法包括关闭生成序列化程序集和官方 MS 修复,启用长文件名自至少 2017 年以来。
在 VS 2019 的 UI 中应该可以禁用 XmlSerialization,在项目文件中添加以下内容也应该可行:
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
然而,在VS 2022中没有通过界面进行此操作的选项,上述配置似乎被忽略。因此,我看不到如何避免在VS 2022中出现错误。我尝试在VS 2019中禁用它并加载到VS 2022中,但这并不起作用。更新:我还尝试将解决方案移到根目录下具有两个字符名称的目录中,但仍然无法解决问题。您有任何想法吗?