2012-03-19 10 views
21

En lugar de excluding a file from the referenced output of an assembly, deseo agregar uno.Incluya el archivo .config del proyecto al que se hace referencia

Tengo un proyecto de aplicación de consola (BuildTest1) que hace referencia a un proyecto de biblioteca de segunda clase (ClassLibrary1). La solución de Visual Studio se parece a esto:

Solution layout

Tengo un proyecto de biblioteca de clases que tiene un app.config. Quiero que este archivo .config se copie al resultado del proyecto de referencia, al igual que los archivos .dll y .pdb. El archivo de configuración para la biblioteca de clases se copia en el directorio de salida de la biblioteca de clases como 'ClassLibrary1.dll.config'

He intentado agregar esto al archivo .csproj del proyecto .exe pero no parece hacer ningún diferencia:

<PropertyGroup> 
    <AllowedReferenceRelatedFileExtensions> 
     .pdb; 
     .xml; 
     .config 
    </AllowedReferenceRelatedFileExtensions> 
    </PropertyGroup> 

Respuesta

36

estaba tan cerca ... yo rastreado esto a la tarea de MSBuild ResolveAssemblyReference que se llama desde el objetivo ResolveAssemblyReferences en Microsoft.Common.targets. Esto es lo que completa el elemento ReferenceCopyLocalPaths.

Así que buscando el patrón de los archivos que se emparejan descubrí que la .dll.config extensión de archivo (en lugar de sólo .config) hizo el truco:

<PropertyGroup> 
    <AllowedReferenceRelatedFileExtensions> 
     .pdb; 
     .xml; 
     .dll.config 
    </AllowedReferenceRelatedFileExtensions> 
</PropertyGroup> 
+3

Gracias por el seguimiento. Lástima que no puede configurarlo al revés, desde el proyecto de la biblioteca, ya que es el que sabría que otros necesitan su archivo de configuración. "¿Quieres mi archivo de configuración, confía en mí" –

+1

Funcionó para mí ... ¡Gracias! – Krunal

+1

Oh, esto es tan increíble. ¡Gracias! –

Cuestiones relacionadas