WPF error CS0433
我在WPF应用程序中遇到此错误。我并非总是会收到此错误。如果我先进行清理,然后重建,则一切正常。
1 2 3 4 5 | 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' |
您可以使用与混淆器Rummage捆绑在一起的免费工具RummageTypeRenamer(我为Aldaray工作)将
我们将其重命名为
这是Scott Hanselman的一篇文章,讨论了WPF的这一问题。
遇到此问题的其他人已通过安装一些修补程序解决了该问题。请查看本文以获取更多信息。
如果您使用的是Citrix,则可能需要检查一下。您可能遇到权限问题。本文特别介绍了ASP .NET应用程序,但是WPF应用程序中可能存在类似的问题。这是一个很好的起点。
您可以在c:\\\\ Users \\\\\\\\ AppData \\\\ Local \\\\ Temp \\\\中找到XmlSerializer生成的代码
运行您的应用程序后,它将是something.cs。
我的名字是:" me2ywucq.0.cs",只是在代码中用文本搜索您的Type名称。
您还可以更改在运行时创建程序集时将代码写入的路径
请参见通过scott更改XmlSerializer在哪里输出临时程序集的位置
将以下内容添加到您的app.config或web.config:
1 2 3 | <system.xml.serialization> <xmlSerializer tempFilesLocation="c:\\\\foo"/> </system.xml.serialization> |
找到代码后,您可以将自己编译为myAssembly.XmlSerializers.dll或在代码中实现IXmlSerializer,而不会破坏与先前序列化的兼容性。
我试图弄清楚为什么我的库中有这个生成的类XamlGeneratedNamespace.GeneratedInternalTypeHelper。 MSDN没什么帮助:
A class generated by the workflow
designer used to generate CLR types
for XAML documents.
但是我发现了导致生成此类的代码行:
1 | <Grid DataContext="{TemplateBinding InternalDataContext}"> |
我将其替换为"运行时等效项":
1 | <Grid DataContext="{Binding InternalDataContext, RelativeSource={RelativeSource TemplatedParent}}"> |
也许对某人有帮助。
此错误来自持久编译的XML序列化程序集生成器。它从XML可序列化类型生成类。如果不使用它,则可以在项目属性中取消选中它。