Wie ein Office-Add-In bauen, ohne es auf dem Build-System Registrierung?
-
23-09-2019 - |
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?
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>