gpt4 book ai didi

c# - MSB6003 无法运行指定的任务可执行文件 "sgen.exe"。文件名或扩展名太长

转载 作者:太空狗 更新时间:2023-10-29 22:21:19 32 4
gpt4 key购买 nike

在 Windows 10 上运行 VS 2017 15.5.3。

收到此一般性错误“无法运行指定的任务可执行文件“sgen.exe”。文件名或扩展名太长”在发布配置和 X64 平台中构建项目时。但它在调试配置和任何 CPU 平台上构建良好。

https://developercommunity.visualstudio.com/content/problem/98090/vs-2017-153-error-the-specified-task-executable-sg.html 中的建议

能够构建它,但是在将“生成序列化程序集”设置为 OFF 之后。

不要认为文件名很长。有人会阐明这一点吗?

最好的问候,

达莫达尔

最佳答案

MSB6003 The specified task executable “sgen.exe” could not be run. The filename or extension is too long

据我们所知,sgen.exe用于为指定程序集中的类型创建 XML 序列化程序集,以提高 XmlSerializer 在序列化或反序列化指定类型的对象时的启动性能。

如果不需要 XML 序列化程序集,则应将 GenerateSerializationAssemblies 的属性设置为 Autooff默认情况下,SGen 仅为“任何 CPU”生成代理类型。这就是为什么您在发布配置和 X64 平台上出现错误但在调试配置和任何 CPU 平台上没有出现错误的原因。您可以右键单击您的项目->Properties->Build->GenerateSerializationAssemblies,将值设置为off。然后卸载你的项目,编辑项目,在项目文件中,你可以找到下面这行代码:

<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>

enter image description here

但是,这行代码存在于条件 Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU' " 上,所以要解决这个问题,您可以手动将这行代码添加到其他条件中。您的项目文件配置最终看起来像这样:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
...
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
...
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
</PropertyGroup>

参见 Generating an Xml Serialization assembly as part of my build了解更多详细信息。

希望这对您有所帮助。

关于c# - MSB6003 无法运行指定的任务可执行文件 "sgen.exe"。文件名或扩展名太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48199538/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com