¿Por qué necesito una página recompilada cuando cambia un método que utiliza?

Tengo una página aspx que utilizó un método en una clase en la carpeta del Código de aplicación,doSomething(int[] x). Cambié la definición de la función para usar un IEnumerable en lugar de una matriz:doSomething(IEnumerable<int> x). Luego, precompilé el sitio web, usando "permitir que el sitio web sea actualizable", y publiqué el nuevo App_Code.dll. Ahora, la versión precompilada de la página muestra un error del servidor en tiempo de ejecución: "Método no encontrado".
Si también publico el archivo DLL generado para la página, "App_Web_ [página] .aspx. [Random] .dll", funciona. Entonces, ¿parece que la firma de la función está incrustada en la página compilada de alguna manera ...? ¿Por qué es esto y hay una manera de evitar este problema al cambiar el código existente?
Odio actualizar todas las DLL de mi página cada vez que cambio el código en mis clases comunes.

Respuestas a la pregunta(8)

Su respuesta a la pregunta