2010-11-09 13 views
6

Tengo una aplicación que funciona bien en .Net 2.0 SP2, pero no se ejecuta correctamente en .NET 2.0 RTM. (Para su información: falla cuando se llama a un método una DLL administrada que es un contenedor para una DLL nativa para la programación USB).¿Es posible especificar el paquete de servicio .NET en "supportedRuntime" en app.config?

sé que puede dar tiempos de ejecución soportados en el app.config de una aplicación .NET C#

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

Sin embargo, es también posible especificar una versión específica Service Pack?

Gracias!

Editar: Ahora descubrí qué método falla entre 2.0 y 2.0 SP2. Es WaitHandle.WaitOne (int) que se agregó en 2.0 SP1.

Un consejo para todos los que tengan el problema, el compilador no dice nada pero si insertas el ejecutable con el tiempo de ejecución problemático, te dará el error exacto.

Ej:

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

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

Respuesta

1

gran explicación se puede encontrar here sobre por qué esto es imposible. Puede encontrar una respuesta SO here para satisfacer sus necesidades.

<supportedRuntime> en realidad no funciona de esa manera, porque el 3.5 framework usa el tiempo de ejecución 2.0. Solo puede especificar runtimes de esa manera, no frameworks, y el elemento solo expresa preferencia, no demanda.

+0

OK, parece lógico. Me he ocupado de todos los detalles en mi instalador de NSIS, pero algunos usuarios estaban copiando los archivos a otras PC ... – Rogier

0

Prueba esto (para .NET 2.0 SP2):

<supportedRuntime version="2.0.50727.1433" /> 

.NET Framework versions here.

+0

No funciona. Citando: "El valor de la cadena debe coincidir con el nombre del directorio que se encuentra en la raíz de instalación de .NET Framework". –

+0

Bueno, comencé la publicación con "Probar". No lo eliminaré para que otros puedan ver que esta no es una opción válida. –

+0

Aún trabajando en VMware pero parece que no funciona. – Rogier

Cuestiones relacionadas