2014-11-06 4 views
0

У меня есть приложение, которое использует dll третьей стороны, которые нуждаются в .Net 4.0.
Итак, я упаковал .Net exe, используя iexpress с моим установщиком, который создается с помощью Wix.
Однако позже я узнал, что после установки .Net 4.0 необходимо перезагрузить компьютер, поскольку некоторые из его файлов могут быть использованы.
Я не хочу, чтобы мои пользователи перезагружали компьютер после установки моего приложения.
Лучший способ, по-моему, показать, что все запущенные приложения используют .Net, чтобы закрыть эти приложения и продолжить установку без необходимости перезагрузки.Как определить, какие запущенные приложения используют .Net

Как я могу обнаружить эти запущенные приложения, которые используют .Net?

Благодаря

ответ

0

Я думаю, что вы должны сделать что-то похожее на Process Explorer:

  1. Вызвать CLRCreateInstance функцию с CLSID_CLRMetaHost.
  2. Перечислите каждый процесс в системе, затем вызовите метод ICLRMetaHost::EnumerateLoadedRuntimes для каждого процесса.
  3. Для каждой возвращенной работы вызовите метод ICLRRuntimeInfo::GetVersionString и проверьте, вернула ли она строку версии для .NET 4.0.
Смежные вопросы