当我在dotnet中编译我用VS2019编写的项目时,我得到了这个错误,我刚刚迁移到dotnet核心6.0并加载到VS2022中。
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和启用长文件名since at least 2017的MS官方修复。
应该可以从VS 2019中的UI禁用XmlSerialization,并且应该可以在项目文件中添加以下内容:
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
然而,在VS2022中没有通过UI执行此操作的选项,并且上面的配置似乎被忽略了。因此,我看不出如何避免VS2022中的错误。我试过在VS2019中禁用它,并在VS2022中加载它,但这不起作用。
更新:我还尝试将解决方案移动到根目录中,名称为2个字符。一点也不快乐。
有什么想法吗?
发布于 2021-11-12 10:56:58
我只是再次尝试在项目文件中禁用,这一次起作用了。
<PropertyGroup>
...
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
</PropertyGroup>
VS 2022似乎没有像VS 2019那样的UI选项,所以你似乎必须手动完成这项工作。
我现在得到了一个
The command "copy "\policy.xml" "" " exited with code 1 error
但那是另一个问题..。
https://stackoverflow.com/questions/69941114
复制相似问题