c# - 由于 XmlSerialization (sgen.exe) 无法在 Visual Stu

当我在 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 个字符。没有快乐。

有什么想法吗?

最佳答案

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

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

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

我现在得到一个

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

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

关于c# - 由于 XmlSerialization (sgen.exe) 无法在 Visual Studio 2022 中构建项目并且无法禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69941114/

相关文章:

python - IPywidgets 观察包裹在一个类中时不起作用

python - TensorFlow 安装错误,未启用 Windows LongPath 支持

git - 重新启用 Visual Studio Code GitHub 身份验证

r - 使用 spsurvey 在多边形内绘制 GRTS 点

kubernetes - 如何在我的 Kubernetes 容器中安装 tar 二进制文件以使 ku

reactjs - “开始故事书”不被识别为内部或外部命令,

python - 如果使用 native ORM,如何避免 Django Rest API 中的 S

c++ - 如何使用 Boost 在缓冲区中进行二进制序列化

node.js - 在配置数据库时连接详细信息不可用 Digital Ocean

computer-vision - 不同相机 View 之间的映射