Pregunta

Tengo un dll. Ese dll se carga en un servidor. Quiero que cada vez que la aplicación comience a obtener & Quot; latest & Quot; dll del servidor, por lo que he usado el siguiente código en mi app.config. ¿Por qué no está funcionando?

aquí está el archivo app.config:

<configuration>
<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="ReflectionTest"
            publicKeyToken="f94c9b9f0707ee96"
                culture="neutral" />
            <codeBase version="1.0.0.0"                   
                href="http://127.0.0.1/ReflectionTest.dll"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>
</configuration>
¿Fue útil?

Solución

Primero, puede estar en el camino equivocado. Incluso si no cambió la versión, su aplicación puede terminar usando una copia anterior del ensamblaje.

Suponiendo un URI válido en su elemento <codebase>, cuando su aplicación se ejecuta por primera vez, el tiempo de ejecución no encontrará el ensamblado hasta que pruebe su base de código. Luego, descargará el ensamblado al GAC. Cuando su aplicación se ejecute nuevamente, el motor de ejecución encontrará ese ensamblaje en el GAC, por lo que no tendrá que probarlo.

En lugar de usar Assembly.LoadFrom(assemblyUri), considere usar Reflection. Específicamente, es posible que desee utilizar Activator.CreateInstance<T>() en su aplicación, obteniendo el URI de una configuración de aplicación. A partir de ahí, crearía objetos usando la API de Reflection, particularmente usando <=>.

En lo que respecta a obtener ese ensamblado de su servidor, asegúrese de que su DLL esté en la ubicación correcta y de que su servidor web esté funcionando y configurado correctamente.

Otros consejos

¿Su .dll está realmente disponible en esa ubicación? ¿Lo está sirviendo a través de alguna aplicación web?

Si escribe esa URL en un navegador web, ¿le permite descargar o abrir ese archivo?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top