问题标签 [sgen.exe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
839 浏览

.net - 哪些类型的事情会导致 sgen msbuild 任务因访问冲突而间歇性失败?

在我们项目的 MSBuild 文件中,我们生成了一个包含在 xml 序列化期间使用的类的程序集。这些类是通过 xsd.exe 生成的。

我们使用以下 SGen 任务配置。

在我们的构建服务器上执行 msbuild 脚本时,会间歇性地抛出以下错误。最初这个错误可能在每 50 个 (CI) 构建中发生一次,最近频率一直在增加,现在每 10 个构建中可能会发生 5-6 个。

正在生成的程序集的大小约为 410k(大约 35,000 行生成的代码),成功时序列化程序集的大小约为 1.7M。

失败时,输出如下:

我们使用 Hudson 来管理我们的构建,因此 msbuild 和 sgen 进程因此由 Hudson.exe 生成。

互联网上没有太多关于 SGen 的此类错误的信息。当然没有什么具体的。

0 投票
2 回答
941 浏览

visual-studio-2008 - 使用 MSBuild 2008 构建 VS2010 解决方案

我们的开发团队最近将解决方案从 VS2008 升级到 VS2010,以使用 VS2010 IDE 的一些功能。但我们的目标框架仍然是 .Net 3.5。当 dev 从 VS 2008 命令提示符运行 MSBuild 以构建 VS2010 解决方案时,构建成功。但在构建服务器上,我们收到以下错误。

MSB3086:任务无法使用 SdkToolsPath“”或注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A”找到“sgen.exe”。确保设置了 SdkToolsPath 并且该工具存在于 SdkToolsPath 下的正确处理器特定位置,并且 Microsoft Windows SDK 安装在 Microsoft.Common.targets(2249, 9) 中

我们在构建服务器上没有 VS2010 或 Windows SDK 7.1 或 .Net 4.0。此外,我们不想在构建服务器上安装 .Net 4.0 或 VS2010,因为我们希望在生产中继续使用 .Net 3.5。

有什么方法可以修复使用 VS 2008/3.5 MSBuild 运行 VS2010 解决方案,而无需在构建服务器上安装 .Net 4.0 或 VS2010?

谢谢托德

0 投票
1 回答
261 浏览

asp.net-mvc-3 - 缺少 sgen.exe

我正在尝试通过项目附带的 .BAT 文件构建 NopCommerce,但我收到一条错误消息,提示我缺少 sgen.exe。我已经查看了它应该在的所有地方,并在我的计算机上进行了搜索,但它不见了。

我有 VWD2010、.NET v4.0.30319 和 MVC3 和 4,但没有 sgen.exe。

我尝试在 VWD2010 中构建项目,但有一堆 Web 引用位于网站根目录之外。

我想我要么需要找到 sgen.exe 的副本并将其放在 .BAT 文件正在查找的位置,要么更好的是能够从 VWD2010 中发布它,但我不知道该怎么做。如果我右键单击解决方案,我没有发布选项?

有什么建议么?

0 投票
0 回答
969 浏览

c# - sgen.exe 和 Oracle.DataAccess.dll 的问题 (Visual Studio 2012)

我们尝试将我们的 Web 服务项目从 Visual Studio 2010 迁移到 Visual Studio 2012。该项目使用 Oracle.DataAccess.dll(v 11.2.0.3 32 和 64 位),我们使用 sgen.exe 创建 *.XmlSerializers.dll。

sgen.exe 始终无法为包含 Oracle.DataAccess.dll 的项目创建 XmlSerailizer.dll。我们需要将解决方案构建为 AnyCPU。

我们收到的错误消息如下: SGEN : error : 尝试加载格式不正确的程序集:c:\oracle\x64\product\11.2.0\client_1\ODP.NET\bin\4\Oracle .DataAccess.dll。

即使仅并行安装 Visual Studio 2010 和 2012,也无法在任一工作室中构建 Webservice 项目。

到目前为止,我们所有试图找到解决问题的方法都失败了。有没有人有类似的星座并找到了解决问题的方法?

0 投票
6 回答
17363 浏览

visual-studio-2010 - SGEN:错误:无法加载文件或程序集(HRESULT 异常:0x8013141A)

VS 2010,win server 2003,.Net 3.5 解决方案,从 .Net 1.1 迁移而来

解决方案中的所有项目均已延迟签名。可以为 Debug 成功构建解决方案,但对于 Release 总是失败并出现以下错误。SGEN:错误:无法加载文件或程序集“AssemblingX,版本=1.0.5000.0,Culture=neutral,PublicKeyToken=xxxxxxxx”或其依赖项之一。强名称验证失败。(来自 HRESULT 的异常:0x8013141A)

AssemblingX是我想要构建的项目。该项目的所有引用的 DLL 都保存在本地文件夹中,并且已经签名。如果我更改项目AssemblingX的属性以对其进行签名,则可以构建解决方案以成功发布。

我按照http://social.msdn.microsoft.com/Forums/nl-NL/msbuild/thread/695581ae-77e7-4c3a-bb3f-6472b8c47f65上的指导创建了一个 sgen.exe.config 以启用“loadFromRemoteSources”

但什么都没有改变。有任何想法吗?

谢谢

0 投票
1 回答
597 浏览

c# - 由于 XmlSerialization (sgen.exe) 无法在 Visual Studio 2022 中构建项目并且无法禁用

当我在 dotnet 中编译用 VS 2019 编写的项目时出现此错误,我刚刚迁移到 dotnet core 6.0 并加载到 VS 2022 中。

由于文件名过长,XmlSerialization 似乎存在一个已知问题。修复包括关闭Generate Serialization 程序集和至少从 2017 年开始启用长文件名的官方 MS 修复。

应该可以在 VS 2019 的 UI 中禁用 XmlSerialization,并且应该可以在项目文件中添加:

但是,VS 2022 中没有通过 UI 执行此操作的选项,并且上面的配置似乎被忽略了。因此,我看不到如何避免 VS 2022 中的错误。我尝试在 VS 2019 中禁用它并在 VS 2022 中加载,但这不起作用。

更新:我还尝试将解决方案移动到具有 2 个字符名称的根目录。没有喜悦。

有任何想法吗?