2010-11-09 10 views
6

Ho un'applicazione che funziona bene su .Net 2.0 SP2, ma non riesce a funzionare correttamente su .NET 2.0 RTM. (FYI: Fallisce quando si chiama un metodo una DLL gestita che è un wrapper per una DLL nativa per la programmazione USB).È possibile specificare il service pack .NET in "supportedRuntime" in app.config?

So che si può dare i runtime supportati nel app.config di un'applicazione C# .NET

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

Tuttavia, è anche possibile specificare una specifica versione del Service Pack?

Grazie!

Modifica: ora ho trovato quale metodo non funziona tra 2.0 e 2.0 SP2. È WaitHandle.WaitOne (int) che è stato aggiunto in 2.0 SP1.

Un suggerimento per tutti gli altri che hanno il problema, il compilatore non dice nulla, ma se si ngen l'eseguibile con il runtime problematico, ti dà l'errore esatto.

Esempio:

Warning: System.MissingMethodException: Method not found: 'Boolean System.Threading.WaitHandle.WaitOne(Int32)'. while resolving 0xa0000e1 - System.Threading.WaitHandle.WaitOne. 
11/11/2010 01:54:07 [3620]: Method not found: 'Boolean System.Threading.WaitHandle.WaitOne(Int32)'. while compiling method XXX 

Rogier

+1

Check out ... http: //stackoverflow.com/questions/199080/how-to-detect-what-net-framework-versions-and-service-packs-are-installed –

risposta

1

Grande spiegazione può essere trovata here sul perché questo è non possibile. È possibile individuare una risposta SO here per soddisfare le proprie esigenze.

<supportedRuntime> non funziona in questo modo, poiché il framework 3.5 utilizza il runtime 2.0. Puoi specificare solo runtimes in questo modo, non quadri, e l'elemento esprime solo preferenza, non richiesta.

+0

OK, sembra logico. Mi sono occupato di tutti i dettagli nel mio programma di installazione di NSIS, ma alcuni utenti stavano copiando i file su altri PC ... – Rogier

0

Prova questo (per NET 2.0 SP2):

<supportedRuntime version="2.0.50727.1433" /> 

.NET Framework versions here.

+0

Non funziona. Citando: "Il valore della stringa deve corrispondere al nome della directory trovato nella root di installazione di .NET Framework." –

+0

Bene, ho iniziato il post con "Prova". Non lo eliminerò in modo che altri possano vedere che questa non è un'opzione valida. –

+0

Ancora lavorando su VMWare ma non sembra funzionare. – Rogier

Problemi correlati