У меня проблема с разрешением сборки на компьютере конечного пользователя, и я полагаю, что это связано с использованием переносимых библиотек классов....
У меня есть приложение .NET 4.0, которое изначально было написано в Visual Studio 2010. Недавно мы обновились до Visual Studio 2012 и создали несколько проектов, которые являются переносимыми библиотеками классов. Я не думаю, что нам нужны эти функции сейчас, но мы также создаем приложение для Магазина Windows 8, которое могло бы извлечь выгоду из этих библиотек.
Когда я компилирую свой проект, что именно делает функция переносимой библиотеки? Я ожидаю, что это позволит мне запускать его на разных платформах без модификации или перекомпиляции.
Когда я смотрю на библиотеку в reflector dotPeek, атрибут платформы отображается как:
.NETPortable, версия = v4.0, профиль = профиль 5
И ссылки кажутся 2.0-ish:
mscorlib, версия = 2.0.5.0
Система, Версия=2.0.5.0
System.Runtime.Serialization, версия = 2.0.5.0
Когда я запускаю приложение на компьютере этого конечного пользователя, я вижу ошибку в файле журнала:
Не удалось загрузить файл или сборку, "System.Core, Version=2.0.5.0..."
Поиск в Google System.Core 2.0.5.0, похоже, относится к SilverLight, который, по-видимому, является одной из целевых платформ.
На этом компьютере не установлена Visual Studio, но установлена .NET 4.0 (обновление 4.0.3).
Есть ли что-то, что я должен делать по-другому для компиляции, что-то, что я должен исследовать в своих зависимостях, или что-то, что я должен искать для установки на машине конечного пользователя? К чему относится 2.0.5.0?