Не удалось загрузить файл или сборку> 'System.Windows, версия = 2.0.5.0 - PullRequest
4 голосов
/ 06 июня 2011

При первой загрузке приложения Silverlight я получаю эту ошибку:

Не удалось загрузить файл или сборку 'System.Windows, Версия = 2.0.5.0, Культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e'или одна из его зависимостей.Система не может найти указанный файл

, но, просто обновив страницу, она будет решена!

кажется, что это известная ошибка Silverlight: http://connect.microsoft.com/VisualStudio/feedback/details/464190/silverlight-compilation-problem-in-team-build-environment

они предлагают обходной путь, но не работает в моем случае.

Ответы [ 4 ]

7 голосов
/ 06 июня 2011

Ну, на самом деле сборка 'System.Windows', скопированная в выходной каталог, решила проблему со мной. Просто убедитесь, что оно скопировано туда, где вы собираетесь выполнять приложение, а не только в папку Debug. Также есть очень хорошая альтернатива, у которой нет подобных проблем: SilverUnit

1 голос
/ 08 января 2014

Blockquote Ну, на самом деле сборка «System.Windows» копируется в выходной каталог, и я решил эту проблему. Просто убедитесь, что оно скопировано туда, где вы собираетесь выполнять приложение, а не только в папку Debug.

в справочной папке вашего проекта. Копировать локальный : true вашего сборочного файла.

Примечание: , если ваш проект использует .NET 2.0, используйте .NET Framework v2.0 SP2 для решения этой проблемы

1 голос
/ 08 октября 2013

Проверьте, есть ли у вас код где-то вроде этого

Assembly assembly = Assembly.Load(assemblyName);

Если он у вас есть, это означает, что он может загружать неподходящую сборку. Например, System.Windows для других .net framework

В этом случаеВы могли бы использовать библиотеку, на которую ссылаются, напрямую или загрузить ее из правильного AssemblyName что-то вроде этого

foreach (var assemblyName in Assembly.GetExecutingAssembly().GetReferencedAssemblies()) 
            {                    
                if (assemblyName.ToString().Contains("PresentationFramework"))
                {
                    Assembly assembly = Assembly.Load(assemblyName);
                    Common.AddToLog(assembly.FullName);
                    Type[] allTypes = assembly.GetTypes();

                    foreach (Type type in allTypes)
                    {
                        if (type.IsSubclassOf(typeof(DependencyObject)))
                        {
                            allControlTypes.Add(type);
                        }
                    }
                }
            }
1 голос
/ 26 июня 2013

Просто добавьте ссылку на эту dll System.Windows.Presentation.dll в ваш проект, так как ваш проект запрашивает System.Windows.dll , и это пространство имен, которое содержитсяв System.Windows.Presentation.dll.

Путь для библиотеки DLL:

C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ System.Windows.Presentation \ v4.0_4.0.0.0__b77a5c561934e089

Я столкнулся с этой проблемой, добавив ее в свой проект, решил эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...