2012-06-05 23 views
8

Actualmente MSBuild no está copiando archivos con la extensión .manifest en mi carpeta de compilación. He agregado comandos para copiar explícitamente el archivo, pero ¿hay un indicador de configuración que pueda establecer para que se incluyan los archivos .manifest?Cómo incluir tipos de archivos excluidos en MSBuild

Respuesta

10

Puede pasar la propiedad AllowedReferenceRelatedFileExtensions a su construcción. El valor de la propiedad debe ser una lista de extensiones de archivos separadas por punto y coma. De Microsoft.Common.targets:

<!-- 
These are the extensions that reference resolution will consider when looking for files related 
to resolved references. Add new extensions here if you want to add new file types to consider. 
--> 
<AllowedReferenceRelatedFileExtensions Condition=" '$(AllowedReferenceRelatedFileExtensions)' == '' "> 
    .pdb; 
    .xml 
</AllowedReferenceRelatedFileExtensions> 

No hay manera de agregar valores a la lista. Sólo se puede suministrar toda la lista, así que asegúrese de incluir los valores por defecto, por ejemplo,

MSBuild.exe MyProject.csproj /t:build "/p:AllowedReferenceRelatedFileExtensions=.pdb;.xml;.manifest" 
+1

añadí AllowedReferenceRelatedFileExtensions elemento de un niño a un elemento PropertyGroup a mi script de creación y también en el fichero de .csproj y no vi los archivos que se copian (tengo una compilación automatizada ejecutándose a través de TFS). ¿Supone esto que los archivos son el resultado de un proyecto (es decir, una carpeta bin)? Si es así, ¿sabes qué tendría que hacer para que mi compilación automatizada copie los archivos que no son productos de un proyecto? –

+0

@JM Sí. MSBuild solo tomará los archivos que están en el directorio de salida obj para su proyecto. Si su archivo .manifest no está en el directorio de salida, probablemente necesite agregar un objetivo de creación posterior a su archivo .csproj. –

Cuestiones relacionadas