2008-10-01 20 views

Respuesta

21

No puede tener más de un maestro csproj. Pero debido a que el cableado subyacente del csproj se realiza mediante msbuild, simplemente puede tener múltiples csproj parciales que se importan entre sí. El archivo de solución sería el más derivado csproj.

Project1.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    .... 
</Project> 

project2.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="project1.csproj" /> 
    ... 
</Project> 

project.csproj - este es el proyecto principal que se conoce por el archivo de solución.

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="project2.csproj" /> 
    ... 
</Project> 

conclusión es que el uso de msbuild importación función que puede tener archivos csproj parciales donde cada uno contendría las definiciones que el proyecto principal (project.csproj en mi ejemplo) sería utilizar.


Visual Studio mostrará una advertencia de seguridad para proyecto de diálogo cuando se abre el archivo de solución o proyecto modificado. Elija la opción Cargar proyecto Normalmente y presione OK. Al volver a abrir la solución, la advertencia no se mostrará porque la configuración Cargar proyecto Normalmente se almacena en el archivo suo.

-2

Bueno, puede tener múltiples proyectos combinados en una gran solución, pero no creo que eso sea exactamente lo que tenía en mente ya que cada proyecto tiene que ser un proyecto completo en ese caso.

4

Sí, puede dividir la información en varios archivos. Puede usar Import Element (MSBuild).

Tenga en cuenta que Visual Studio le dará annoying security warning si intenta abrir el archivo de proyecto que incluye otros archivos de proyecto.

Linky Útil de MSDN:

How to: Use the Same Target in Multiple Project Files

Tenga en cuenta que los archivos externos tienen .targets extensión por las convenciones.

+0

Puede elegir Cargar proyecto normalmente y la próxima vez que se abra el proyecto sin la advertencia. Esto se almacena en el archivo suo. –

+1

Lo sé, pero los archivos suo generalmente no se almacenan bajo el control de código fuente. – aku