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