Предполагая, что ваш сервер непрерывной интеграции использует MSBuild для сборки надстройки Office 2007, быстрым обходным решением будет выполнение цели сборки, а затем цели 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). Для служебной надстройки это свойство имеет значение Приложение , которое заставляет процесс регистрации пройти. Установив его на пользовательское значение, вы отключаете регистрацию. В этих примерах явно указывается, какие проекты создавать, но вы также можете проверить их, указав файл решения. Однако сервер CI должен использовать MSBuild напрямую, а не VS для выполнения сборок.
<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>