Я не нашел такого решения нигде, но наткнулся на него как на метод проб и ошибок при пожаре ...
Сообщение об ошибке немного вводило меня в заблуждение. Подсказка заключалась в том, что это была не сама сборка «System.Windows», а одна из зависимых сборок .
Что вы можете сделать, это проверить ваш GAC и посмотреть, есть ли в нем одна из следующих сборок:
- System.Windows
- System.Windows.Controls
- System.Windows.Controls.Toolkit
- System.Windows.Controls.Layout.Toolkit
Попробуйте удалить их только из GAC, а затем выполните восстановление. Если это не работает, просто откройте два окна проводника и скопируйте их обратно в папку c: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ Silverlight \ v4.0 \ System.Windows.dll или в папку папку для вашего набора инструментов Silverlight, и вы вернетесь туда, откуда начали.
Вот что я подозреваю:
Компилятор Visual Studio 2010 запутывается в том, где взять эти ссылочные сборки при выполнении сборки, потому что сборки GAC всегда имеют приоритет над другой копией сборки (даже папкой ссылочной сборки, которую использует VS2010). Поэтому, несмотря на то, что сборка технически правильна с тем же ключом ID, и все, что есть в компиляторе VS2010, который не может определить, какую библиотеку использовать для сборки, и он откажется завершить сборку.