Cómo especificar la ubicación del archivo de solución para los archivos de información de ensamblaje de versiones en MSBUILD

StackOverflow https://stackoverflow.com//questions/25075651

Pregunta

He estado jugando con esto por un día, pero no tengo suerte. El versionamiento de la asamblea con MSBUILD se utiliza para trabajar antes, pero recientemente hemos trasladado los archivos de solución a una carpeta separada dentro de la raíz del proyecto, y desde entonces la versión no ha estado funcionando.

a continuación es la estructura del proyecto

carpeta de código

-> PROTECA FOLDER

-> Carpeta ProjectB

-> Carpeta ProjectC

-> Carpeta de soluciones

* anteriormente, los archivos Soluciones (.SLN) estaban debajo de la carpeta de códigos.

Cuando ejecutamos el MSBUILD, obtengo la siguiente advertencia.

No se proporcionaron archivos de información de ensamblaje

A continuación se muestra una versión reducida del registro de compilación.

Eliminar espacio de trabajo

00:00 Eliminar directorio de fuentes

00:00 Crear espacio de trabajo

01:14 Obtener espacio de trabajo

00:00 Assemblies de versiones

00:00 versión de ensamblaje de ensamblaje y ensamblador Procesamiento: usando patrones de número de versión incluidos en la definición de compilación

00:00 Establecer todos los valores de la propiedad de ensamblaje (B) Asambleas de versiones con Los siguientes patrones: ensamblaje (1.0.0.0) y Fileversión de montaje (yyyy.mm.dd.b) Sin archivos de información de ensamblaje fueron proporcionado

A continuación se muestra la tarea MSBUILD que produce el registro anterior.

  <local:VersionAssemblyInfoFiles 
    AssemblyFileVersionPattern="[AssemblyFileVersionPattern]" 
    AssemblyInfoFilePattern=" AssemblyInfoFilePattern]" 
    AssemblyVersionPattern="[AssemblyVersionPattern]" 
    BuildDirectory="[BuildDirectory]" BuildNumberPrefix=" 
   [BuildNumberPrefix]" BuildSettings="[BuildSettings]" 
    DisplayName="Versioning Assemblies" 
    DoCheckinAssemblyInfoFiles="[DoCheckinAssemblyInfoFiles]" 
    ForceCreateVersion="[ForceCreateVersion]" 
    sap:VirtualizedContainerService.HintSize="200,22" 
    mva:VisualBasic.Settings="Assembly references and imported namespaces 
   serialized as XML namespaces" UseVersionSeedFile="[UseVersionSeedFile]" 
   VersionSeedFilePath="[VersionSeedFilePath]" Workspace="[Workspace]" 
   xmlns:local="clr-namespace:TfsBuild.Versioning.Activities;
   assembly=TfsBuild.Versioning.Activities">

      <sap:WorkflowViewStateService.ViewState>
        <scg:Dictionary x:TypeArguments="x:String, x:Object">
          <x:Boolean x:Key="ShouldCollapseAll">False</x:Boolean>
          <x:Boolean x:Key="ShouldExpandAll">True</x:Boolean>
        </scg:Dictionary>
      </sap:WorkflowViewStateService.ViewState>
 </local:VersionAssemblyInfoFiles>

También miré la solución sugerida aquí pero no tengo suerte. ¿Puede alguien apuntarme a la dirección correcta? No soy un experto en Msbuild.

gracias de antemano.

¿Fue útil?

Solución

Terminé haciendo la siguiente solución. No tenemos una opción para mover todas las soluciones al nivel de raíz del proyecto.

a. Crea una nueva solución i.e SomeApp.lib.Versioning.SLN Esta solución viviría bajo la carpeta raíz y solo se usa para versionar el resto de los proyectos.

b. El proyecto (.csproj) para el Someapp.lib.versioning.sln viviría en el mismo nivel que el resto de los proyectos.

Entonces la nueva estructura es

carpeta de código

-> PROTECA FOLDER

-> Carpeta ProjectB

-> Carpeta ProjectC

-> Carpeta de soluciones

-> someapp.lib.versioning.sln

-> Carpeta SOMEAPP.LIB.VERSIONING

c. Ahora realizo referencia al Someapp.lib.VERSIONING.PROJ de una de las soluciones dentro de la carpeta Soluciones. Esto significa SomeApp.lib.versioning.proj tiene dos soluciones adjuntas a HIT.

d. El proyecto que muestre la versión de compilación usaría el archivo tipo I.E de clase desde el SOMEAPP.LIB.VERSIONING.PROJ

Según la versión de construcción estándar SomeApp.lib.versioning.proj tendría la versión de compilación correcta (SomeApp.lib.VERSIONING.SLN está en el nivel raíz)

Observaciones: Esto es solo un trabajo y no una solución ideal. Esto no se verá todas las asambleas en el proyecto. Por ejemplo, si queremos saber qué ensamblaje se construyó en qué versión, esto no va a funcionar. Es solo el titular del lugar para obtener la versión de compilación de la solución.

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