Pregunta

Así que tengo una CommonAssemblyInfo.cs vinculados en todos los proyectos en la solución y se genera dinámicamente por mi rastrillo / albacora scripts que no ha sido controlada en control de código fuente.

También tiene un CommonAssemblyInfo.cs.local para su uso cuando no hay disponible rubí, principalmente para ser utilizado por los desarrolladores.

¿Es posible tener una tarea msbuild o algo que se ejecuta antes de cualquiera de los otros compilación proyecto que va a copiar CommonAssemblyInfo.cs.local a CommonAssemblyInfo.cs antes de compilar mi solución? No me gusta tener que tener un dominio que tiene que acaba de conocer y tipo con el fin de abrir y buidl la solución en Visual Studio.

Actualizar Así que terminé usando un archivo por lotes como una solución pre-construcción amplia evento tal como se describe aquí: Solución de todo el evento de pre-construcción? , se comprueba si existe CommonAssemblyInfo.cs y si no copias CommonAssemblyInfo.cs.local a CommonAssemblyInfo.cs simplemente utilizando un archivo por lotes simple.

¿Fue útil?

Solución

Esta es la solución que terminó con.

Tengo cada proyecto en el enlace de solución a un CommonAssemblyInfo.cs que se genera automágicamente para mí por mis scripts de construcción (rake + albacora).

Ya que no puedo comprobar CommonAssemblyInfo.cs en control de origen, se crea un CommonAssemblyInfo.cs.local.

Una solución simple: crear go.bat que copia CommonAssemblyInfo.cs.local a CommonAssemblyInfo.cs que los desarrolladores deben ejecutar la primera vez que comprueben a cabo el proyecto antes de abrir la solución en VS

.

puramente razones políticas, si lo ha hecho este pueblo habrían tenido encaja silbante sobre mí hacer las cosas "no estándar". solución compleja sigue:

He creado un proyecto en la solución llamada PreBuild el que cada proyecto de la solución depende. Esto obliga a la orden de construcción sean tales que este proyecto se construye en primer lugar. Este proyecto contiene un evento de pre-construcción que llama al siguiente archivo por lotes:

echo verifying CommonVersionInfo.cs exists
cd
IF NOT EXIST ..\..\..\CommonAssemblyInfo.cs COPY ..\..\..\CommonAssemblyInfo.cs.local ..\..\..\CommonAssemblyInfo.cs

Así que ahora los desarrolladores que optan por mantener sus cabezas en la arena pueden sacar el proyecto y felizmente abrirlo en VS conscientes de que existen scripts de construcción en absoluto.

Otros consejos

¿Usted está hablando acerca de la compilación en el IDE de VS, o compilación a través de la acumulación equipo? Si se habla de formación de equipo, a continuación, puede utilizar el evento "AfterGet" como un lugar para utilizar el estándar de "copia" tarea msbuild. Si usted está hablando de la IDE de VS, a continuación, puede seguir utilizando la "copia" tarea msbuild.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top