Evitar validación de referencia durante compilación

27/05/2008 - 18:12 por El Cote | Informe spam
Éste es un mensaje de varias partes en formato MIME.
=_NextPart_000_000E_01C8BFEA.8C2979C0

Hola compañeros...

¿Cómo evito que VS.NET me valide una referencia que tengo agregada a mi proyecto durante la compilación?

Necesito hacer esto para que en caso que no exista la referencia adicionada al proyecto en el computador donde se instale el aplicativo, poder controlar la excepción y así hacer unas cosas distintas a las que se harían si existiera la referencia.

Espero haberme explicado.

Muchas gracias!
=_NextPart_000_000E_01C8BFEA.8C2979C0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content=text/html;charset=iso-8859-1>
<META content="MSHTML 6.00.6000.16640" name=GENERATOR></HEAD>
<BODY id=MailContainerBody
style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-TOP: 15px"
bgColor=#ffffff leftMargin=0 topMargin=0 CanvasTabStop="true"
name="Compose message area">
<DIV><FONT face=Arial size=2>Hola compañeros...</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>¿Cómo evito que VS.NET me valide una referencia que
tengo agregada a mi proyecto durante la compilación?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Necesito hacer esto para que en caso que no exista
la referencia adicionada al proyecto en el computador donde se instale el
aplicativo, poder controlar la excepción y así hacer unas cosas distintas a las
que se harían si existiera la referencia.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Espero haberme explicado.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Muchas gracias!</FONT></DIV></BODY></HTML>

=_NextPart_000_000E_01C8BFEA.8C2979C0--

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
27/05/2008 - 18:32 | Informe spam
"El Cote" wrote in message
news:
¿Cómo evito que VS.NET me valide una referencia que tengo
agregada a mi proyecto durante la compilación?

Necesito hacer esto para que en caso que no exista la
referencia adicionada al proyecto en el computador donde
se instale el aplicativo, poder controlar la excepción y así hacer
unas cosas distintas a las que se harían si existiera la referencia.

Espero haberme explicado.



Me temo que no, no te has explicado demasiado bien. Vamos a ver, ¿cuándo
quieres hacer la validación, al compilar o al ejecutar? El primer párrafo
parece indicar que al compilar, pero el segundo que al ejecutar.

Si al compilar no existe una de las DLLs referenciadas no ocurre nada,
símlemente te sale un iconito amarillo junto a la Referencia en el
Explorador de Soluciones, a no ser que realmente el código contenga llamadas
a los contenidos de dicha DLL, en cuyo caso no hay más remedio que tenerla
disponible en tiempo de compilación porque sino el compilador no tiene forma
de validar lo que está compilando.

Pero en tiempo de ejecución, sea en la misma máquina o en otra, puedes
ejecutar el programa sin la DLL. No pasa nada mientras el programa no
intente hacer una llamada a las clases contenidas en la dll, que sería el
momento en que daría un error. Para ver si la dll existe y es alcanzable por
tu programa, se me ocurre que podrías hacer una llamada de prueba dentro de
un try...catch para ver si da error o no.

La alternativa a todo lo anterior es no meter en ningún sitio la Referencia,
y cargar la dll en tiempo de ejecución y hacerle llamadas mediante
Reflexión. Pero esto tiene el inconveniente de que el compilador no puede
validar las llamadas que haces, con lo que todos los errores te los
encuentras en tiempo de ejecución (aparte de que es menos eficiente y va más
lento).
Respuesta Responder a este mensaje
#2 El Cote
27/05/2008 - 18:49 | Informe spam
Gracias Alberto por tu oportuna respuesta.

Te comento a nivel general lo que tengo:

En aplicativo necesito referencia a un objeto COM, este COM es MapPoint, por
tal motivo tengo un "Interop" de Mappoint.

Ahora bien, necesito hacer unas pruebas del aplicativo sin que el usuario
tenga instalado MapPoint, por tal razón, necesito que el compilador no
valide esa referencia.

Quedo atento a tu valiosa colaboración.
Respuesta Responder a este mensaje
#3 El Cote
27/05/2008 - 19:33 | Informe spam
Gracias Alberto por tu oportuna respuesta.

Te comento a nivel general lo que tengo:

En aplicativo necesito referencia a un objeto COM, este COM es MapPoint, por
tal motivo tengo un "Interop" de Mappoint.

Ahora bien, necesito hacer unas pruebas del aplicativo sin que el usuario
tenga instalado MapPoint, por tal razón, necesito que el compilador no
valide esa referencia.

Quedo atento a tu valiosa colaboración.
Respuesta Responder a este mensaje
#4 Alberto Poblacion
27/05/2008 - 20:33 | Informe spam
"El Cote" wrote in message
news:
Te comento a nivel general lo que tengo:

En aplicativo necesito referencia a un objeto COM, este COM es MapPoint,
por
tal motivo tengo un "Interop" de Mappoint.

Ahora bien, necesito hacer unas pruebas del aplicativo sin que el usuario
tenga instalado MapPoint, por tal razón, necesito que el compilador no
valide esa referencia.



No lo he probado, pero si no me equivoco, el compilador lo único que va
a comprobar es que exista el ensamblado de Interop (que se llamará algo así
como Interop.Mappoint.dll), pero no que realmente tengas instalado el
correspondiente objeto COM. Debería de compilar solo con que exista la dll
de interop, e incluso ejecutarse si errores mientras no intentes hacer una
llamada al Mappoint.
Respuesta Responder a este mensaje
#5 El Cote
27/05/2008 - 20:56 | Informe spam
Gracias Alberto... la realidad (al menos con mis pruebas) es que verifica
que el COM exista. Me ha tocado, ejecutar el programa y cuando está en
ejecución proceder a desinstalar el Mappoint, y luego abrir la opción que
utiliza Mappoint, sin embargo, cuando vuelvo a ejecutar el programa VS.NET
detecta que la referencia no es válida.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida