cuestión de la dependencia con MSBuild 4.0 al hacer DllImport de C # en C ++ no administrado biblioteca

StackOverflow https://stackoverflow.com/questions/3048577

Pregunta

establecer explícitamente la dependencia en VS2010 entre el proyecto C # C ++ no administrado y es honrado en VS2010, pero la dependencia es ignorado en MSBuild 4.0.

Es imposible añadir una referencia a C ++ no administrado proyecto de C #, que yo sepa.

¿Cómo me aseguro orden de construcción correcta si una solución contiene proyectos gestionados y administrados?

¿Fue útil?

Solución

MSBuild tiene un error en ella y no cumple correctamente las dependencias del proyecto han añadido en la solución. Echar un vistazo a http: //social.msdn.microsoft.com/Forums/en-US/msbuild/thread/80cc6447-b720-4806-8395-7c257b207613/ y https://connect.microsoft.com/VisualStudio/feedback/ detalles / 613284 / msbuild-4-does-cuando-edificio-no-respeto-acumulación de fin-a-solución

Una publicación por Microsoft en la página de conexión indica que es un error en la versión de 64 bits de MSBuild. Trate de cambiar a la versión de 32 bits para ver si se soluciona el problema.

Si usted no puede hacer eso, o no funciona, hay otras dos opciones. Ninguno de los dos son ideales.

La primera opción sería la de editar manualmente el archivo de GLC y cambiar el orden de los proyectos aparecen en el archivo para que coincida con el orden de construcción que desee. Imagino solución de Victor sería una idea mucho mejor, ya que cambios adicionales en el archivo de solución podrían terminar sobrescribir los cambios de nuevo.

La segunda opción sería la de exportar manualmente el "metaproyecto" MSBUILD de la solución y editar el orden de generación directa y añadir cualquier otro cambio que necesita. Por lo que he leído, incluso a Microsoft no lo hacen "comida para perros" compilación solución - en su lugar, los evitan por completo durante construye y uso de los archivos personalizados en lugar de MSBuild

.

Para generar el metaproj, establece la variable de entorno MSBuildEmitSolution a 1. Después de ejecutar MSBuild en la solución y usted debería ver un archivo ".metaproj" en el mismo directorio - que contiene el script que genera MSBuild en memoria para compilar el solución. Usted debe ser capaz de hacer los cambios necesarios, comprobar que en, a continuación, establecer el servidor de compilación para compilarlo.

El problema va a desaparecer en la próxima versión de Visual Studio. La página de Microsoft Connect tiene un anuncio de Microsoft que se fijará en la próxima versión, y corre el rumor de que van a obtener deshacerse de los archivos .sln y reemplazándolos con proyectos de MSBuild adecuados.

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