2009-02-17 7 views
5

Tengo una solución Visual Studio 2005 .NET que tiene más de 20 proyectos secundarios, incluido un proyecto de implementación. El proyecto de implementación VS2005 .NET tiene varias dependencias detectadas, que se han excluido manualmente y se han agregado valores corregidos manualmente.. Dependencias detectadas del .Net Deployment Project, mágicamente no excluidas

A veces, sin embargo, estas dependencias detectadas quedan mágicamente sin excluir, lo que desencadena una advertencia sobre la compilación: ADVERTENCIA: Dos o más objetos tienen la misma ubicación de destino ('[targetdir] \')

¿Cuál es el desencadenante que causa que una dependencia detectada no se excluya? ¿Pueden las soluciones de implementación tener sus advertencias tratadas como errores, por lo que la compilación nocturna no continuará?

+0

¿Sigues buscando una respuesta a esto ??? – cgreeno

+0

No he encontrado una solución mejor, así que supongo que sí. Las reincorporaciones no están sucediendo durante la compilación. Hemos tenido 3 o 4 desarrolladores que tienen las reincorporaciones en el momento del desarrollo, y hemos hecho una doble impresión en algún momento y hemos dicho cómo regresaron esos. – BrianH

Respuesta

0

Muy bien, este es más de un hack que cualquier otra cosa :)

Usted normalmente bajo Visual Studio tiene 2 opciones:

a) excluir la DLL duplicados
o
b) establecer las Condición propiedad de sus archivos DLL duplicados a algo diferente.

El problema es que con estos dos enfoques, usted todavía va a tener que mágicamente reset y conseguir la advertencia como antes ..

lo que funcionó para nosotros es la siguiente solución:

a) vaya a su proyecto de instalación y crear una carpeta personalizada

b) Establecer el DefaultLocation propiedad de su carpeta personalizada a ser el mismo que el que necesita esos archivos DLL ser colocado. es decir, para aplicaciones ASP.NET, el valor es [TARGETDIR] \ bin

c) A continuación, arrastre y suelte TODOS los dlls duplicados en esta carpeta y no debería recibir advertencias ahora.

Eso es todo. No debería recibir advertencias para esos dlls, si tiene algún extra simplemente arrástrelos a esta carpeta.

Espero que esto ayude.

-Konstantinos

+0

Problema con eso es que todavía estará copiando 2 archivos, uno de los cuales puede ser diferente (probablemente es por eso que recibe la advertencia) – BrianH

0

La discusión de la dependencia detectada refresca aquí puede explicar el comportamiento si está utilizando múltiples entornos de desarrollo con el mismo proyecto:

http://www.xmission.com/~legalize/msi/known-bugs-2003.html

+0

Gracias por el enlace. Estoy usando VS-2005 y parece que los primeros dos problemas en su enlace no se han abordado en VS-2005. Quién sabe sobre 2008 y más allá ... – BrianH

1

he tenido el mismo problema y se ocupó de ello durante aproximadamente un año antes de darse por vencido y pasar a WiX. Tampoco ayudó el hecho de que tuve que "construir dos veces" mis compilaciones porque MSBuild para VS2005 no funcionará con los proyectos de implementación.

De todos modos, es posible que desee considerar algo como WiX para sus instalaciones.

+1

+1 para Wix, los proyectos de implementación VS causan dolores de cabeza – thijs

1

Ocurre cuando el proyecto dependiente tiene "Copiar local" configurado en una DLL dependiente. El proyecto de instalación/instalación tiene el origen y la copia de la DLL listados como una dependencia.

Cuestiones relacionadas