Приложение .NET Framework 3.0 в Windows XP SP3 с .NET Framework 4.0 - PullRequest
1 голос
/ 09 сентября 2011

Мое приложение имеет Target .NET Framework версии 3.0.

У меня есть ПК с новой установкой Windows XP SP3.Затем я установил .NET Framework 4.0 Full на него

Когда я пытаюсь запустить приложение, развернутое в ClickOnce, я получаю «Не удалось загрузить среду выполнения» Ошибка:

[9/9/2011 11:39:53 AM] System.Runtime.InteropServices.COMException
    - Failed to load the runtime. (Exception from HRESULT: 0x80131700)
    - Source: System.Deployment
    - Stack trace:
        at System.Deployment.Application.NativeMethods.IClrMetaHostPolicy.GetRequestedRuntime(MetaHostPolicyFlags policyFlags, String binaryPath, IStream configStream, StringBuilder version, Int32& versionLength, StringBuilder imageVersion, Int32& imageVersionLength, Int32& pdwConfigFlags, Guid interfaceId)
        at System.Deployment.Application.NativeMethods.GetAssemblyCacheInterface(String CLRVersionString, Boolean FetchRuntimeHost, CCorRuntimeHost& RuntimeHost)
        at System.Deployment.Application.PlatformDetector.VerifyPlatformDependencies(AssemblyManifest appManifest, AssemblyManifest deployManifest, String tempDir)
        at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
        at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
        at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
        at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)

Насколько я понимаю, приложенияТаргетинг .NET 3.0 должен работать на компьютерах с установленной .NET 4.0.Что вызывает эту ошибку?Нужно ли устанавливать .NET Framework 3.5 SP1 на машины с Windows XP?

Ответы [ 3 ]

3 голосов
/ 09 сентября 2011

да Я бы установил .NET Framework 3.5 и попробовал бы снова, если он не работает, я бы установил 3.0 ( Microsoft .NET Framework 3.0 Распространяемый пакет ).

.NET 3.5 SP1 и .NET 4 присутствуют на машинах, на которых мы разворачиваем наши приложения.

Edit:

также проверьте эти вопросы:

Какую версию .NET Framework мне следует отправлять; 2, 3, 3,5?

Требуется ли .net framework 2.0, если установлен 3.5?

1 голос
/ 10 сентября 2011

Как отметил Давиде Пирас, вам нужно установить .NET 3.0. Причина, по которой вам нужно это сделать, заключается в том, что .NET 4 не является надмножеством зависимостей библиотек 3.5 / 3.0 / 2.0.

.NET 3.5 - это библиотеки 3.0 плюс некоторые дополнительные. .NET 3.0 - это библиотеки 2.0 плюс некоторые дополнительные

Однако .NET 4 - это совершенно новый набор библиотек, которые существуют параллельно с библиотеками 2.0 / 3.0 / 3.5. Я считаю, что это результат .NET 4 с использованием новой среды CLR, чем 2.0 / 3.0 / 3.5. Все 2.0 / 3.0 / 3.5 используют одну и ту же среду выполнения, поэтому каждая новая версия требовала установки предыдущих версий.

0 голосов
/ 09 сентября 2011

Это COMException, так что я бы сказал, что, возможно, компонент установлен неправильно.

Проверьте свойства вашего проекта на вкладке публикации.В разделе «Файлы приложений» установите флажок «Показать все файлы» и убедитесь, что все, что вам нужно, помечено как включенное.

Там вы также можете попросить приложение загрузить требуемые компоненты (например, соответствующую инфраструктуру).

Такое вводящее в заблуждение сообщение об ошибке случилось со мной в прошлом.Может также быть просто основой, как говорится в другом ответе.

...