2011-07-21 8 views
5

tengo una solución de Visual Studio 2010 con dos proyectos:¿Por qué el paquete de implementación web no selecciona la referencia de mi proyecto en Visual Studio?

  1. Una aplicación Web ASP.NET MVC 3.
  2. Una biblioteca de clases.

La aplicación MVC tiene una referencia de proyecto a la biblioteca de clases.

Cuando uso la opción "Crear paquete de implementación" en Visual Studio para compilar el archivo zip con mi aplicación web para la implementación, no incluye la biblioteca de clases. Por lo tanto, después de la implementación, recibo una excepción debido al ensamblaje que falta.

He verificado que la referencia del proyecto está configurada en "Copiar local = verdadero". Cuando compila y depura el sitio, las cosas funcionan bien y la biblioteca de clases está en la carpeta bin. Solo cuando construye el paquete de implementación, este desaparece.

Si cambio de una referencia de proyecto a una referencia de ensamblaje directo, apuntando al archivo bin/Debug/ClassLibrary.dll, el paquete crea correctamente e incluye la biblioteca de clases. Solo veo el problema cuando se trata de una referencia de proyecto.

¿Cómo puedo obtener la biblioteca de clases como referencia del proyecto para que se incluya correctamente en el paquete de la aplicación web?

+0

Tengo el mismo problema. ¿Alguna suerte rastreando? –

Respuesta

0

¿Es algo tonto como tener solo el perfil del cliente en la biblioteca de la clase?

+0

No. El marco de destino en ambos proyectos está configurado en ".NET Framework 4." –

1

No estoy seguro de cómo solucionar esto si está implementando desde VS.NET, pero descubrí cómo hacerlo desde un script de MSBuild.

La sintaxis básica para crear un paquete de MSDeploy/WebDeploy .zip para un .csproj en MSBuild es así:

<MSBuild Projects="Path\To\Project.csproj" 
     Targets="ResolveReferences;Package" 
     Properties="Configuration=Release;DeployOnBuild=true;DeployTarget=Package;PackageLocation=Path\To\Output.zip" /> 

nota los objetivos = "ResolveReferences; Package". Empecé con Targets = "Paquete", pero eso solo funciona a medias.

Aparentemente, si desea obtener ensamblajes creados a partir de referencias de proyectos, primero debe llamar a ResolveReferences. Solo crear el paquete no hará eso, y le faltarán ensamblajes que estén incluidos en el resultado del proyecto como resultado de las referencias del proyecto.

Cuestiones relacionadas