Pregunta

¿Es posible dividir la información en un archivo .csproj en más de un archivo? Un poco como una versión de proyecto de la característica clase parcial .

¿Fue útil?

Solución

No puede tener más de un maestro csproj. Pero debido a que el cableado inferior del csproj se realiza mediante msbuild, simplemente puede tener varios csproj parciales que se importan entre sí. El archivo de la solución vería la mayoría de derivados 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 al que hace referencia el archivo de la solución.

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

La conclusión es que al usar la función msbuild Importar puede tener archivos csproj parciales en los que cada uno contendría definiciones que el proyecto principal (project.csproj en mi ejemplo) usaría.


Visual Studio mostrará un cuadro de diálogo Advertencia de seguridad para project cuando abra la solución modificada o el archivo de proyecto. Elija la opción Cargar proyecto normalmente y presione Aceptar . Cuando vuelva a abrir la solución más tarde, la advertencia no se mostrará porque la configuración para Cargar proyecto normalmente se almacena en el archivo suo .

Otros consejos

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

Tenga en cuenta que Visual Studio le dará advertencia de seguridad molesta si intentará abrir un archivo de proyecto que incluya otros archivos de proyecto.

Enlaces útiles de MSDN:

Cómo usar el mismo objetivo en varios archivos de proyecto

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

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

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