7

我在我的 WPF 应用程序中收到此错误。我并不总是得到这个错误。如果我先清理然后重建一切正常。

SGEN (0,0):                                             
error: Unable to generate a temporary class (result=1).

SGEN (0,0):
errorCS0433: The type 'XamlGeneratedNamespace.GeneratedInternalTypeHelper' exists in both 'library1.dll' and 'library2.dll'
4

5 回答 5

3

您可以使用RummageTypeRenamer,一个与我们的混淆器 Rummage 捆绑在一起的免费工具(我为 Aldaray 工作),将GeneratedInternalTypeHelper类型重命名为其他名称。

我们将其重命名为类似GeneratedInternalTypeHelper$(ProjectName)这样的名称,以便它在项目中是独一无二的,并且不会发生冲突。我们在所有构建脚本中都这样做以使 ILMerge 工作(我同事私人博客中的博客条目)。

于 2012-10-04T17:00:20.960 回答
1

这是 Scott Hanselman 为 WPF 讨论此问题的文章

其他遇到此问题的人已通过安装一些修补程序来修复它。查看这篇文章了解更多信息。

如果您使用的是 Citrix,您可能需要检查一下。您可能有权限问题。这篇特定的文章处理 ASP .NET 应用程序,但您的 WPF 应用程序中可能会遇到类似的问题。这是一个很好的起点。

于 2010-10-01T20:03:30.630 回答
0

运行应用程序后,您可以在 c:\Users\\AppData\Local\Temp\ 中找到 XmlSerializer 生成的代码,它将是 something.cs。我的是:“me2ywucq.0.cs”,只是在它的代码中搜索你的类型名称。

您还可以更改它在运行时创建程序集时写入代码的路径,请参阅scott 的更改 XmlSerializer 输出临时
程序集的位置将以下内容添加到您的 app.config 或 web.config:

<system.xml.serialization> 
  <xmlSerializer tempFilesLocation="c:\\foo"/> 
</system.xml.serialization> 

找到代码后,您可以自己将其编译成 myAssembly.XmlSerializers.dll 或在代码中实现 IXmlSerializer,而不会破坏与 prev 序列化的兼容性。

于 2012-12-24T11:28:07.160 回答
0

我试图弄清楚为什么我的库中有这个生成的类XamlGeneratedNamespace.GeneratedInternalTypeHelper。MSDN没什么帮助:

由工作流设计器生成的类,用于为 XAML 文档生成 CLR 类型。

但是我找到了导致生成此类的代码行:

<Grid DataContext="{TemplateBinding InternalDataContext}">

我用“运行时等效”替换它:

<Grid DataContext="{Binding InternalDataContext, RelativeSource={RelativeSource TemplatedParent}}">

也许它可以帮助某人。

于 2010-10-06T15:03:17.060 回答
0

此错误来自持久编译的 XML 序列化程序集生成器。它从 XML 可序列化类型生成类。如果你不使用它,你可以在项目属性中取消选中它。

于 2010-10-01T20:04:21.000 回答