2010-10-25 35 views
45

He incluido un reproductor de DirectX en la aplicación C# .net 4.0 que se incluye aquí (answer2). El problema es que cuando trato de inicializar el objeto (es decir, Player mPlayer = new Player()) aparece este error:El ensamblado de modo mixto se compila con la versión 'v1.1.4322'

El modo mixto se compila con la versión 'v1.1.4322' del tiempo de ejecución y no se puede cargar en el 4.0 tiempo de ejecución sin información de configuración adicional.

¿Alguien sabe lo que puede ser?

+0

IMPORTANTE: Si el error ocurre con la columna de error "Archivo" como 'SGEN', entonces t El arreglo debe estar en un archivo 'sgen.exe.config', al lado de' sgen.exe'. Por ejemplo, para VS 2015, cree 'C: \ Archivos de programa (x86) \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.6 Tools \ sgen.exe.config'. Origen: [Conjunto de modo mixto SGEN] (https://support.microsoft.com/en-us/help/2572158/sgen-mixed-mode-assembly-is-built-against-version-v2-0-50727-of -the-ru) Contenido mínimo del archivo: '' – ToolmakerSteve

Respuesta

65

Debe agregar un archivo app.Config y establecer useLegacyV2RuntimeActivationPolicy en verdadero.

Esto es necesario para utilizar ensamblajes CLR 2 de modo mixto en una aplicación .NET 4.

+0

¡ah gracias! ¿Qué son los ensambles de clr 2 de modo mixto? – Alex

+3

@Badescu También me llamó la atención sobre esto, aquí hay un enlace que explica: http://msdn.microsoft.com/en-us/library/x0w2664k.aspx – Badaro

+0

gracias Badaro! – Alex

67

La forma me fijo este error fue cambiando el nodo de 'configuración' en mi app.config de esta:

<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
</startup> 

a esto:

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
</startup> 
+8

Gracias por aclararnos más a aquellos de nosotros que no modificamos el archivo app.config xml lo suficiente como para saber cómo establecer ese valor en verdadero. +1 – Jack

+0

Es un placer, Jack. En ese momento, tuve que buscarlo yo mismo, así que pensé que alguien podría usar esa información adicional :) –

+1

Gracias Gustavo –

2

Aquí es posible configuración de montaje :

<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> 
    </startup> 
</configuration> 
Cuestiones relacionadas