Приложение .Net 4.0, ориентированное на профиль клиента, по-прежнему предлагает пользователю загрузить полный профиль - PullRequest
2 голосов
/ 31 января 2012

У меня есть приложение .NET Winform, которое предназначено для '.NET Framework 4 Client Profile', оно использует еще четыре сборки библиотеки классов, но все они также нацелены на профиль клиента.

Когда я тестирую это на ванильном Windows XP с установленным только клиентским профилем 4.0, я все еще получаю «Ошибка инициализации .NET Framework»:

Чтобы запустить это приложение, сначала необходимо установить один из следующих версии на платформе .NET: .NETFramework, версия = v4.0

Как узнать, какая часть приложения все еще нуждается в компоненте полного фреймворка?

Я предполагал, что, установив целевую платформу на «профиль клиента», компилятор удостоверится, что я использую только компоненты профиля клиента.

1 Ответ

5 голосов
/ 31 января 2012

Я снова просмотрел все сборки, чтобы убедиться, что все они нацелены на профиль клиента: да.

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

Затем я посмотрел на app.config, в котором есть некоторые записи DbProviderFactories, но удаление их не помогло.Пока я видел первый узел:

<startup>
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>

хмм, может быть, этот конкретный sku означает полную версию.И действительно, изменение его на

<startup>
  <supportedRuntime version="v4.0" />
</startup>

решило все мои проблемы.

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