【问题标题】:Can't Build Project In Visual Studio 2022 Due To XmlSerialization (sgen.exe) And Can't Disable由于 XmlSerialization (sgen.exe) 无法在 Visual Studio 2022 中构建项目并且无法禁用
【发布时间】: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


    【解决方案1】:

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

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

    VS 2022 似乎没有 VS 2019 那样的 UI 选项,因此您似乎必须手动执行此操作。

    我现在得到了一个

    The command "copy "\policy.xml" "" " exited with code 1 error

    但这是一个不同的问题......

    【讨论】:

      猜你喜欢
      • 2022-10-09
      • 2012-12-31
      • 2022-12-11
      • 1970-01-01
      • 2015-06-02
      • 2022-06-13
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多