由于 XmlSerialization (sgen.exe),无法在 Visual Studio 2022 中构建项目,也无法禁用。

3

我在将刚刚迁移到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中,但这并不起作用。更新:我还尝试将解决方案移到根目录下具有两个字符名称的目录中,但仍然无法解决问题。您有任何想法吗?
1个回答

2

我刚刚又尝试在项目文件中禁用它,这次成功了。

<PropertyGroup>
   ...
   <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
</PropertyGroup>

Visual Studio 2022似乎没有像2019版本一样的UI选项,因此您需要手动进行操作。

现在我遇到了一个问题

"copy "\policy.xml" "" " 命令以1错误代码退出

但这是另一个问题了...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接