Domanda

La mia app ha un framework .NET target di 3.0.

Ho un PC con una nuova installazione di Windows XP SP3. Successivamente, ho installato .NET Framework 4.0 completo.

Quando provo a eseguire la mia app ClickOnce-Deployd, ottengo il "Impossibile caricare il runtime" errore:

[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)

Comprendo che le app che mirano a .NET 3.0 dovrebbero funzionare su macchine che hanno installato .NET 4.0. Cosa sta causando questo errore? Devo installare .NET Framework 3.5 SP1 su macchine Windows XP?

È stato utile?

Soluzione

Sì, installerei .NET Framework 3.5 e riproverei, se non funziona, installerei il 3.0 ( Pacchetto ridistribuibile Microsoft Framework 3.0 ).

.NET 3.5 SP1 e .NET 4 sono entrambi presenti nelle macchine a cui distribuiamo le nostre applicazioni.

Modificare:

Controlla anche queste domande:

Con quale versione .NET Framework dovrei spedire; 2, 3, 3.5?

.NET Framework 2.0 è richiesto se 3.5 è installato?

Altri suggerimenti

Come ha detto Davide Piras, è necessario installare .NET 3.0. Il motivo per cui devi fare è che .NET 4 non è un superset di dipendenza delle librerie 3.5/3.0/2.0.

.NET 3.5 è 3.0 librerie più alcune aggiuntive. .NET 3.0 è le librerie 2.0 più alcune aggiuntive

Tuttavia, .NET 4 è un insieme completamente nuovo di librerie che esistono in parallelo a quelle 2.0/3.0/3.5. Credo che questo sia il risultato di .NET 4 utilizzando un nuovo Runtime CLR di 2,0/3.0/3.5. Il 2.0/3.0/3.5 utilizza tutti lo stesso runtime, quindi ogni nuova versione ha richiesto l'installazione delle versioni precedenti.

È una venuta, quindi direi che forse un componente non è correttamente impostato.

Controlla le proprietà del tuo progetto nella scheda Publish. Nei file dell'applicazione, controlla tutti i file e assicurati che tutto ciò di cui hai bisogno sia contrassegnato come incluso.

Lì, puoi anche chiedere all'applicazione di scaricare i componenti richiesti (come il framework corretto).

Tale messaggio di errore fuorviante mi è successo in passato. Può anche essere solo il framework come afferma l'altro risposta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top