Ошибка WPF CS0433 - PullRequest
       5

Ошибка WPF CS0433

7 голосов
/ 02 октября 2010

Я получаю эту ошибку в своем приложении WPF. Я получаю эту ошибку не всегда. Если я сделаю Clean и затем Rebuild, то все в порядке.

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'

Ответы [ 5 ]

3 голосов
/ 04 октября 2012

Вы можете использовать RummageTypeRenamer , бесплатный инструмент в комплекте с нашим обфускатором Rummage (я работаю на Aldaray), чтобы переименовать тип GeneratedInternalTypeHelper во что-то другое.

Мы переименуем его вчто-то вроде GeneratedInternalTypeHelper$(ProjectName), чтобы оно было уникальным среди проектов и никогда не конфликтовало.Мы делаем это во всех наших скриптах сборки , чтобы заставить ILMerge работать (запись в личном блоге моего коллеги).

1 голос
/ 02 октября 2010

Вот статья Скотта Хансельмана, обсуждающая этот вопрос для WPF.

Другие люди, у которых возникла эта проблема, исправили ее, установив некоторые исправления. Проверьте эту статью для получения дополнительной информации.

Если вы используете Citrix, вы можете проверить это . У вас может быть проблема с разрешениями. Эта статья посвящена приложению ASP .NET, но у вас может быть похожая проблема в вашем приложении WPF. Это хорошее место для начала.

0 голосов
/ 24 декабря 2012

вы можете найти сгенерированный код XmlSerializer в c: \ Users \\ AppData \ Local \ Temp \ после запуска вашего приложения это будет что-то .cs. Мой был: "me2ywucq.0.cs", просто текстовый поиск для вашего имени типа внутри его кода.

Вы также можете изменить путь, по которому записывает код при создании сборок во время выполнения. см. Изменение, где XmlSerializer выводит временные сборки с помощью scott
Добавьте в свой app.config или web.config следующее:

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

После нахождения кода вы можете скомпилировать его самостоятельно в myAssembly.XmlSerializers.dll или внедрить IXmlSerializer в свой код, не нарушая совместимость с предыдущими сериализациями.

0 голосов
/ 06 октября 2010

Я попытался выяснить, почему в моей библиотеке есть этот сгенерированный класс XamlGeneratedNamespace.GeneratedInternalTypeHelper MSDN говорит ничего полезного:

Класс, сгенерированный рабочим процессом конструктор, используемый для генерации типов CLR для документов XAML.

Но я нашел строку кода, которая вызывает генерацию этого класса:

<Grid DataContext="{TemplateBinding InternalDataContext}">

Я заменил его на «эквивалент времени выполнения»:

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

Может быть, это может кому-нибудь помочь.

0 голосов
/ 02 октября 2010

Эта ошибка возникает из-за генератора скомпилированных XML-сериализаций.Он генерирует классы из сериализуемых типов XML.Если вы не используете это, вы можете снять это в свойствах проекта.

...