3

Visual Studio2008を使用してOffice2007アドインを構築しています。ビルドは、変更をチェックインするか手動で要求するたびにビルドする継続的インテグレーションサーバー(1台のマシン)を介して実行されます。サーバーは同時ビルドを実行できます。

Visual Studio2008がOffice2007アドインをビルドすると、Officeが統合サーバーにインストールされていなくても、ビルドを実行するシステムにも登録されることに気付きました。

Visual Studio 2008がビルド時にアドインを登録しないようにする方法を知っている人はいますか?

4

1 に答える 1

1

継続的インテグレーション サーバーが MSBuild を使用して Office 2007 アドインをビルドしていると仮定すると、簡単な回避策は Build ターゲットを実行し、その後に VSTOClean ターゲットを実行することです。

これを実現するには、次の例に示すように、ビルド プロセスを制御する MSBuild プロジェクト ファイル (master.proj) を作成します。

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

更新: 後のクリーニングでは不十分な場合は、プロパティ (VSTO_ProjectType) をオーバーライドして登録プロセスを停止できます。Office アドインの場合、このプロパティはApplicationに設定され、登録プロセスが強制的に実行されます。カスタム値に設定すると、登録が無効になります。これらの例では、ビルドするプロジェクトを明示的にリストしていますが、ソリューション ファイルを指定してテストすることもできます。ただし、CI サーバーはビルドを実行するために VS ではなく MSBuild を直接使用する必要があります。

<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>
于 2010-02-27T00:16:16.010 に答える