Question

Nous construisons Office 2007 add-ins à l'aide de Visual Studio 2008. Nos réalisations sont effectuées via un serveur d'intégration continue (une machine) qui construit chaque fois que nous vérifions des changements ou demander manuellement un. Le serveur peut effectuer simultanément construit.

Nous avons remarqué que lorsque Visual Studio 2008 crée un Office 2007 add-in, il enregistre également sur le système d'effectuer la construction, même si Office n'est pas installé sur le serveur d'intégration.

Quelqu'un sait-il d'une façon d'empêcher Visual Studio 2008 d'enregistrer le complément comme il le construit?

Était-ce utile?

La solution

En supposant que votre serveur d'intégration continue utilise MSBuild pour construire l'Office 2007 Add-in est une solution rapide sera d'exécuter une cible de construction suivie d'une cible VSTOClean.

Vous pouvez y parvenir en créant un fichier de projet MSBuild (de master.proj) qui contrôle le processus de construction comme illustré dans l'exemple suivant:

<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>

Mise à jour: Si le nettoyage après ne suffit pas pour vous, vous pouvez arrêter le processus d'enregistrement en remplaçant la propriété (VSTO_ProjectType). add-in pour un bureau de cette propriété est définie sur Application qui force le processus d'enregistrement doit avoir lieu. En fixant à une valeur personnalisée vous désactivez l'enregistrement. Ces exemples liste explicitement les projets à construire, mais vous pouvez les tester aussi en spécifiant un fichier de solution. Toutefois, le serveur CI doit utiliser MSBuild directement et non VS pour effectuer les builds.

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top