Frage

Wir bauen Office 2007 Add-Ins mit Visual Studio 2008. Unsere über eine kontinuierliche Integration Server (einer Maschine) ausgeführt werden erstellt, die baut, wenn wir in Änderungen überprüfen oder manuell anfordern. Der Server kann die gleichzeitige ausführen baut.

Wir haben festgestellt, dass, wenn Visual Studio 2008 erstellt, ein Office 2007-Add-in, registriert es auch auf dem System die Build durchführen, obwohl Büro nicht auf der Integration Server installiert ist.

Kennt jemand eine Möglichkeit, von der Registrierung des Add-in Visual Studio 2008 zu verhindern, wie es sie baut?

War es hilfreich?

Lösung

Ihre kontinuierliche Integration Server Angenommen wird MSBuild mit dem Office 2007 Add-in ist eine schnelle Abhilfe ein Build-Ziel von einem VSTOClean Ziel verfolgt auszuführen sein wird zu bauen.

Sie können dies erreichen, indem eine MSBuild-Projektdatei erstellen (master.proj), dass die Kontrollen der Build-Prozess, wie im folgenden Beispiel dargestellt:

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

Update: Wenn die Reinigung nach nicht genug für Sie ist, können Sie den Registrierungsprozess stoppen, indem Sie die Eigenschaft überschrieben (VSTO_ProjectType). Für eine Office-Add-in dieser Eigenschaft auf Anwendung , das den Registrierungsprozess zwingt zu. Durch sie auf einen benutzerdefinierten Wert Einstellung deaktivieren Sie die Registrierung. Diese Beispiele explizit Liste, die Projekte zu bauen, aber man kann sich auch testen, indem man eine Lösung Datei angeben. Doch der CI-Server muss MSBuild verwenden, um direkt und nicht VS auszuführen die 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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top