Pregunta

Estamos construyendo Office 2007 complementos utilizando Visual Studio 2008. Nuestra construye se llevan a cabo a través de un servidor de integración continua (una máquina) que se basa cada vez que comprobamos en los cambios de forma manual o solicitar uno. El servidor puede realizar simultánea construye.

Nos dimos cuenta de que cuando Visual Studio 2008 construye un Office 2007 complemento, también se registra en el sistema de la realización de la construcción, a pesar de que la Oficina no está instalado en el servidor de integración.

¿Alguien sabe de una manera de prevenir Visual Studio 2008 de registrar el complemento, ya que lo construye?

¿Fue útil?

Solución

Asumiendo que su servidor de integración continua está utilizando MSBuild para construir el Office 2007 complemento de una solución rápida será la de ejecutar un objetivo de creación seguido un objetivo VSTOClean.

Se puede lograr esto mediante la creación de un archivo de proyecto de MSBuild (master.proj) que controla el proceso de construcción como se ilustra en el siguiente ejemplo:

<Project 
  DefaultTargets="Build" 
  xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
  <PropertyGroup>
    <WorkingDirectory>C:\BASE_DIR\</WorkingDirectory>
  </PropertyGroup>

  <ItemGroup>
    <VstoProject Include = "$(WorkingDirectory)OfficeAddInProject1.csproj"/>
    <VstoProject Include = "$(WorkingDirectory)OfficeAddInProject1.csproj"/>
  </ItemGroup>

  <Target Name="Build">
    <MSBuild Projects="@(VstoProject)" Targets="Build;VSTOClean" />
  </Target>
</Project>

Actualización: Si después de la limpieza no es suficiente para que usted puede detener el proceso de registro anulando la propiedad (VSTO_ProjectType). Para una oficina adicional en esta propiedad se establece en Aplicación que fuerza el proceso de registro para tomar su lugar. Estableciéndolo en un valor personalizado se deshabilita el registro. Estos ejemplos explícitamente lista en la que los proyectos para construir pero se puede probarlos también mediante la especificación de un archivo de solución. Sin embargo, el servidor de CI debe utilizar MSBuild directamente y no a VS para realizar las compilaciones.

<Project 
  DefaultTargets="Build" 
  xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
  <PropertyGroup>
    <WorkingDirectory>C:\BASE_DIR\</WorkingDirectory>
  </PropertyGroup>

  <ItemGroup>
    <VstoProject Include = "$(WorkingDirectory)OfficeAddInProject1.csproj"/>
    <VstoProject Include = "$(WorkingDirectory)OfficeAddInProject1.csproj"/>
  </ItemGroup>

  <Target Name="Build">
    <MSBuild 
        Projects="@(VstoProject)" 
        Targets="Build" 
        Properties="VSTO_ProjectType=Custom" />
  </Target>
</Project>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top