2012-07-27 8 views
6

Actualmente estoy usando un evento de compilación posterior en mi proyecto para copiar mis ensamblajes a otro directorio con fines de depuración. Esto es local para mi máquina y solo tiene fines de depuración, por lo que preferiría tenerlo en un archivo * .csproj.user en lugar de un archivo * .csproj. Intenté copiar los elementos responsables de * .csproj en * .csproj.user, pero eso no funcionó.¿Existe alguna forma de realizar eventos de compilación pre/post específicos del usuario en proyectos de Visual Studio?

Editar Para aclarar, no quiero poner comandos específicos del usuario en caso posterior a la generación en el archivo * .csproj. En su lugar, quiero poner los comandos de eventos posteriores a la compilación en el archivo * .csproj.user. (De las respuestas hasta ahora, esto parece imposible)

Para dar más contexto, no es una referencia de proyecto. Estoy copiando mi ensamblaje al directorio de la aplicación que carga los ensamblajes en tiempo de ejecución. (Piense en los complementos)

+0

Si se trata de un proyecto de dependencia debe ser capaz de conseguir que se copie teniéndolo en las referencias. ¿Por qué es esto solo local? ¿Puedes explicar un poco más la raíz de tu problema? – Neil

+0

La forma en que he hecho complementos en el pasado es crear un proyecto ficticio que dependa de su dll y que tenga un directorio de salida para el complemento. Luego puede usar la pestaña de depuración en las opciones del proyecto para que la cosa comience. – Neil

Respuesta

6

La respuesta corta es no, no es la forma en que desea hacerlo: |

La respuesta un poco más larga es sorta. En teoría, puede haber eventos de compilación específicos activados para usuarios individuales, pero estos aún estarían en el archivo csproj. Puede ejecutar eventos externos en compilaciones y luego permitir que estos eventos externos se ejecuten dependiendo de qué usuario los esté ejecutando (como un script).

Si esto es solo para la depuración, simplemente los insertaré, haré su compilación y los sacaré antes de subirlos a su sistema de control de versiones.

+0

Tenía miedo de eso. Aparentemente no aclare mi pregunta muy bien, porque hasta ahora eres el único que parece entender a qué me refiero. – blachniet

0

Los eventos de construcción previa/posterior se guardan en el archivo de proyecto. VS no ofrece opciones.

Puede introducir una herramienta personalizada (externa) para realizar dicha copia y llamarla desde el menú, o macros y llamarla también.

2

Puede utilizar una compilación personalizada target que tenga una condición desencadenada por una variable de entorno. Luego solo establece esa variable en tu máquina.

2

Uso de una sentencia if y una variable de entorno (entre comillas dobles si es necesario)

if "$(Username)" == "MyUser" 
    copy /y $(ProjectDir)memcached.$(ConfigurationName).config $(ProjectDir)memcached.config 
Cuestiones relacionadas