Diseño de salida de artefactos
En .NET 8 y versiones posteriores, hay una opción para simplificar la ruta de acceso de salida y la estructura de carpetas para las salidas de compilación. Todas las salidas de compilación de todos los proyectos se recopilan en una ubicación común, separadas por proyecto. Una ubicación común facilita la creación de herramientas para anticipar dónde encontrar las salidas.
De forma predeterminada, la ubicación común es un directorio denominado artefactos junto al archivo Directory.build.props. La estructura de carpetas bajo la carpeta de artefactos raíz es la siguiente:
📁 artifacts
└──📂 <Type of output>
└──📂 <Project name>
└──📂 <Pivot>
En la tabla siguiente, se muestran los valores predeterminados para cada nivel de la estructura de carpetas. Puede invalidar los valores, así como la ubicación predeterminada, mediante las propiedades del archivo Directory.build.props.
Nivel de carpeta | Descripción | Ejemplos |
---|---|---|
Tipo de salida | Categorías de salidas de compilación, como archivos binarios, archivos intermedios o generados, aplicaciones publicadas y paquetes NuGet. | bin , obj , publish , package |
Nombre de proyecto | Separa la salida por proyecto. | MyApp |
Dinamización | Distingue entre compilaciones de un proyecto para diferentes configuraciones, marcos de destino e identificadores en tiempo de ejecución. Si se necesitan varios elementos, se unen con un carácter de subrayado (_ ). Se puede personalizar mediante la propiedad ArtifactsPivots de MSBuild. |
debug , debug_net8.0 , release , release_linux-x64 |
Ejemplos
En la tabla siguiente se muestran ejemplos de rutas de acceso que se pueden crear.
Ruta de acceso | Descripción |
---|---|
artifacts\bin\MyApp\debug | Ruta de acceso de salida de compilación para un proyecto sencillo al ejecutar dotnet build . |
artifacts\obj\MyApp\debug | Ruta de acceso de salida intermedia para un proyecto simple al ejecutar dotnet build . |
artifacts\bin\MyApp\debug_net8.0 | Ruta de acceso de salida de compilación para la compilación net8.0 de un proyecto de destino múltiple. |
artifacts\publish\MyApp\release_linux-x64 | Ruta de acceso de publicación para una aplicación sencilla al publicar para linux-x64 . |
artifacts\package\MyApp\release | Carpeta donde se crea la versión .nupkg para un proyecto. |
Cómo se configura
Para optar por el formato de ruta de acceso de salida centralizada, agregue una de las siguientes propiedades de MSBuild al archivo Directory.Build.props:
Para usar la ubicación de salida predeterminada, establezca la propiedad
UseArtifactsOutput
entrue
.<PropertyGroup> <UseArtifactsOutput>true</UseArtifactsOutput> </PropertyGroup>
Para establecer una ubicación de salida personalizada, agregue una propiedad
ArtifactsPath
con un valor de$(MSBuildThisFileDirectory)artifacts
(o lo que desee que sea la ubicación de la carpeta). Si aún no tiene un archivo Directory.Build.props, puede ejecutar el siguiente comando para generar automáticamente un archivo que contenga la propiedadArtifactsPath
:dotnet new buildprops --use-artifacts
El archivo generado tiene un aspecto similar al siguiente:
<Project> <PropertyGroup> <ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath> </PropertyGroup> </Project>
El nombre de carpeta "pivot" tiene como valor predeterminado una combinación de moniker de la plataforma de destino (TFM), configuración e identificador de runtime (RID). Se omite cualquiera que no esté presente. Para personalizar el nombre de la carpeta "pivot", establezca la propiedad ArtifactsPivots
de MSBuild en la cadena deseada. Por ejemplo:
<PropertyGroup>
...
<ArtifactsPivots>$(ArtifactsPivots)_MyCustomPivot</ArtifactsPivots>
</PropertyGroup>