【发布时间】:2021-12-24 16:41:29
【问题描述】:
当我在 dotnet 中编译用 VS 2019 编写的项目时遇到此错误,我刚刚迁移到 dotnet core 6.0 并加载到 VS 2022 中。
Error MSB6003 The specified task executable "sgen.exe" could not be run. System.ComponentModel.Win32Exception (0x80004005): The filename or extension is too long
由于文件名过长,XmlSerialization 失败似乎是一个已知问题。修复包括关闭Generate Serialization assembly 和官方MS 修复启用长文件名since at least 2017。
应该可以在 VS 2019 的 UI 中禁用 XmlSerialization,并且应该可以在项目文件中添加:
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
但是,VS 2022 中没有选项可以通过 UI 执行此操作,并且上面的配置似乎被忽略了。因此,我看不到如何避免 VS 2022 中的错误。我尝试在 VS 2019 中禁用它并在 VS 2022 中加载,但这不起作用。
更新:我还尝试将解决方案移动到具有 2 个字符名称的根目录。不开心。
有什么想法吗?
【问题讨论】:
标签: c# visual-studio-2022 sgen.exe