问题标签 [sgen]

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 回答
220 浏览

c# - 在具有许多同名类的 5MB 程序集上运行 sgen

我正在尝试为输出 5MB dll 的项目生成 XmlSerializers 程序集。该项目有许多具有不同 .Net 命名空间但名称相同的类,因此 sgen 返回错误消息“命名空间中的顶部 XML 元素 'XXXX' 引用不同的类型 XXXX 和 XXXX。

因此,我将 TypeName 属性添加到每个重复类的 XmlTypeAttribute 中。问题是,每次我运行 SGEN 命令时,至少需要 15 分钟才能显示任何反馈。

你有什么建议吗?

谢谢。

0 投票
1 回答
1939 浏览

c# - Visual Studio 2010 找不到“sgen.exe”

我有一个 C# 程序集项目,我选择在 Visual Studio 2010 中构建它,该项目设置为自行序列化。当我尝试构建项目时,出现此错误:

错误1 指定的任务可执行位置“C:..\MyProjectName\bin\x64\Debug\sgen.exe”无效。

有谁知道我该如何解决这个问题?

为了我的项目,我需要序列化这个程序集。现在有点历史。我使用的这台机器是新的,我碰巧在Visual Studio 2012之后安装了Visual Studio 2010的错误;不确定这是否是它找不到 sgen.exe 的原因。没有调用 sgen 的构建步骤,我很确定它是由 VS 作为构建周期的一部分完成的。其次,它试图在输出目录中查找 sgen ...我不明白它为什么要这样做,我认为 sgen 是一个安装在其他地方的框架组件。该项目在我的另一台计算机上成功构建。

0 投票
1 回答
753 浏览

java - 检查一个类是否在 IJavaProject 的类路径上

我在 fqnd 中有一个 IJavaProject 和一个类:“com.example.urgs.ClassName”。

我如何确定它是否在项目中?

编辑:

这对我有用;)

edit2:parameterValue 可以是工作区中的任何内容。

0 投票
2 回答
640 浏览

mono - 使用 Mono mkbundle 定位 SGEN 垃圾收集器

是否可以使用使用 sgen GC 的 mkbundle 捆绑 Mono 可执行文件?

我假设因为生成的包需要 libmono-2.0.so.1 而不是 libmonosgen-2.0.so,所以它使用标准的 boehm GC。我尝试过使用 $MONO_OPTIONS=--gc=sgen 但生成的包仍然需要非 sgen 库。

我是否误解了 libmono 和 libmonsgen 库的使用?

感谢您的任何帮助或指导

0 投票
1 回答
692 浏览

visual-studio-2012 - Sgen 在 VS2012 中使用内部设置器抛出错误

仅当所有设置器都是公共的时,SGen 才会生成 xml 序列化程序集吗?

我在 DummyProject 有这个课程:

在我的 AssemblyInfo.cs 中,我声明了这一点:

在我的 csproj 中,我放了这个:

当前错误是:

无法反序列化类型“DummyProject.DummyClass”,因为它包含没有公共设置器的属性“Sequence”。

我尝试过的: 1. 现在,如果我取出内部设置器,生成 DummyProject.XmlSerializer 没有问题。

我错过了什么吗?

我的 assemblyinfo.cs 不包含其中 1 个陷阱中列出的内容:

  1. 我也尝试过签署我的程序集并修改 InternalsVisibleTo 以包含公钥,但我仍然遇到同样的错误。

InternalsVisibleTo 有问题吗?

基于这篇文章,即使使用内部设置器,SGen 应该仍然能够生成 xml 序列化程序集。

SGEN、InternalsVisibleTo 和程序集签名

  1. 我没有使用后期构建步骤来生成 xml 序列化程序集。我是在开发人员命令提示符中完成的,并且为没有内部设置器的类成功创建了程序集。现在,我将此程序集复制到我的项目输出并将我的属性设置器更改为内部。由于内部设置器,我在序列化期间遇到错误。
    当然,我在 AssemblyInfo.cs 中添加了 InternalsVisibleTo。
0 投票
1 回答
797 浏览

c# - 缺少程序集参考

我使用sgen文档为包含在“VcdcClassStructure.dll”中的唯一类生成了一个自定义类序列化程序。现在的文件表明我需要做的就是

  1. 添加对“VcdcClassStructure.dll”和 sgen 生成的“VcdcClassStructure.XmlSerializers.dll”的程序集引用。

  2. 通过添加对包含新生成的序列化类的命名空间的引用

    使用 VcdcClassStructure;使用 Microsoft.Xml.Serialization.GeneratedAssembly;`

(我已经使用 DotPeek 确认命名空间是正确的)。

然后我改变了我的代码

但是在编译时我得到了

找不到类型或命名空间名称“VcdcClassStructure”(您是否缺少 using 指令或程序集引用?)

命名空间“Microsoft”中不存在类型或命名空间名称“Xml”(您是否缺少程序集引用?)

我已经引用了相关程序集并添加using了命名空间的代码。为什么编译器抱怨这些引用?

谢谢你的时间。


编辑。以证明我没有错过上述任何步骤。

在此处输入图像描述

0 投票
1 回答
246 浏览

c# - .XmlSerializers.dll 程序集可以嵌入吗?

SGEN 生成的 .XmlSerializers.dll 程序集是否可以嵌入到最终的可执行文件中,并且仍然可以运行并提供性能提升?

0 投票
1 回答
460 浏览

c# - SGen 无法为有效类型生成程序集

我有一个有效的 XmlSerializer 类型:

它成功地序列化和反序列化(完整代码示例在这里http://ideone.com/s2PvSB)。但是,我无法为这种类型生成 .XmlSerializers.dll,SGen 失败:

从 PostBuild 事件中调用的 SGen 为

它是 SGen 中的错误还是 [某处] 记录的行为?

0 投票
2 回答
3637 浏览

c# - 从VS2012升级到VS2013后SGEN不工作

当我在 VS2013(版本 12.0.21005.1 REL)下编译我的 c# 解决方案时,它无法构建部分项目并显示错误消息:

错误 32 命令“C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bin\NETFX 4.0 Tools\sgen.exe” /a:"Project.dll" /f /v" exited with code 3.项目

构建后事件:“$(FrameworkSDKDir)\Bin\NETFX 4.0 Tools\sgen.exe” /a:"$(TargetPath)" /f /v

实际上,文件夹“C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bin\NETFX 4.0 Tools”不存在:“\Bin”仅包含文件夹“NETFX 4.5.1 Tools”。

项目的目标框架:“.NET Framework 4”。

0 投票
0 回答
272 浏览

web-services - C# + Java 服务soap 消息互操作性,soap 消息没有在c# APP + SGEN 中反序列化

我在我的 c# 应用程序中使用的 Java Web 服务之一有一个返回类型“marketCalendar”,其定义如下 wsdl. WSDL 的 Target 名称空间是http://www.xyz.com

并且相应的 C# 代理有以下解释,

问题# 我的 c# 应用程序调用 java webservice 上的 GetMarketCalendar 方法,确实看到了 XML 响应,但无法将其反序列化回 marketCalendar 响应。所以我开始使用XGen 生成的类进行挖掘。

我注意到对于countryexchangecalendarDay类型- c# 的默认反序列化器将肥皂响应中的命名空间与空字符串进行比较,即

if (((object) Reader.LocalName == (object)id84_country && (object) Reader.NamespaceURI == (object)id2_Item)) {

其中传入的是 Reader.NamespaceURI = " http://www.xyz.com " 和 id2_Item = Reader.NameTable.Add(@""); 即空。由于比较失败,反序列化也失败。有什么解决办法吗?

这是 C# XMLSerializer 错误还是 wsdl 中的 marketCalendar 定义有问题?