Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los archivos de filtro de solución son archivos JSON con la extensión .slnf que indican qué proyectos se van a compilar o cargar desde todos los proyectos de una solución. A partir de MSBuild 16.7, puede invocar MSBuild en el archivo de filtro de solución para compilar la solución con el filtrado habilitado.
Nota:
El archivo de filtro de solución reduce el conjunto de proyectos cargados o compilados y simplifica el formato. El archivo de solución sigue siendo necesario.
Compilación de un filtro de solución desde la línea de comandos
La creación de un archivo de filtro de solución desde la línea de comandos usa exactamente la misma sintaxis que la creación de un archivo de solución. Especifique el archivo de filtro de solución en lugar de la solución para compilar con el filtrado habilitado, como se indica a continuación:
msbuild [options] solutionFilterFile.slnf
También puede anexar modificadores y propiedades adicionales como normal. Consulte Referencia de línea de comandos de MSBuild. Este comando compila los proyectos filtrados y los proyectos de los que dependen. Al compilar un filtro de solución desde la línea de comandos, MSBuild sigue automáticamente las dependencias. Compila un proyecto si se especifica en el filtro o se hace referencia a él por un proyecto compilado.
Archivos de filtro de solución
Puede usar Visual Studio para trabajar con archivos de filtro de soluciones. Al abrir un filtro de solución en Visual Studio se muestran los proyectos descargados, así como los proyectos cargados y se ofrece la opción de cargar más proyectos para seleccionarlos para compilarlos. Puede cargar todos los proyectos de los que dependen también el proyecto inicial o los proyectos para compilar, pero no es necesario. Consulte soluciones filtradas.
El filtro de solución no tiene que estar en la misma carpeta que la solución. La ruta de acceso al archivo de solución es relativa a la ubicación del archivo de filtro de solución, pero las rutas de acceso a cada proyecto son relativas al propio archivo de solución y deben coincidir con las rutas de acceso del proyecto en el archivo de solución. En el ejemplo siguiente se muestra el uso de rutas de acceso relativas:
{
"solution": {
"path": "..\\..\\Documents\\GitHub\\msbuild\\MSBuild.sln",
"projects": [
"src\\Build.OM.UnitTests\\Microsoft.Build.Engine.OM.UnitTests.csproj"
]
}
}
Las barras diagonales inversas en las rutas de acceso deben duplicarse, ya que se escapan.
Nota:
En caso de que use el formato de archivo de solución .slnx, compatible con MSBuild 17.12 y versiones posteriores, el archivo .slnx tiene prioridad sobre el archivo .slnf.
Ejemplo
Este es un ejemplo de una solución filtrada en Visual Studio:
En esta solución, ClassLibrary1 lo usa ProjectA y ProjectB, por lo que ClassLibrary1 aparece como referencia de proyecto.
Este es el archivo de filtro de solución que Visual Studio genera:
{
"solution": {
"path": "MyApplication.sln",
"projects": [
"MyApplication\\MyApplication.csproj",
"ProjectA\\ProjectA.csproj"
]
}
}
En este ejemplo, al compilar con filtrado habilitado (mediante el comando MSBuild [options] MyFilter.slnf), MSBuild compila MyApplication y ProjectA porque se enumeran explícitamente en el archivo de filtro de solución. Como parte de la compilación de ProjectA, MSBuild compila ClassLibrary1 porque ProjectA depende de él. ProjectB no está compilado. (En esta discusión se supone que hay una compilación limpia. Si los proyectos se crearon anteriormente, las reglas habituales se aplican para omitir proyectos que ya están up-to-date).