0

Visual Studio 2015で Word 2013 および 2016 VSTO アドインテンプレートを使用して新しい C# プロジェクトを作成しました。TFS 2015 ビルドでどのようにビルドされるかを確認するために、自動生成されたプロジェクト コードに変更を加えていません。サーバ。ビルドで次のエラーが発生しました。

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets (315, 0)
「SetOffice2007AddInRegistration」タスクが予期せず失敗しました。System.Runtime.InteropServices.COMException (0x800703F0): 存在しないトークンを参照しようとしました。(HRESULT からの例外: 0x800703F0) Microsoft.VisualStudio.Tools.Office.Runtime.Interop.VSTOEENativeMethods.GetVSTOEEHandle() で Microsoft.VisualStudio.Tools.Office.Runtime.Interop.VSTOEENativeMethods.GetSolutionMetadata(String solutionInfoString) で Microsoft.VisualStudio。 Tools.Applications.OfficeSolutionMetadata..ctor(String manifestLocation) at Microsoft.VisualStudio.Tools.Office.Runtime.AddInRegistryKeyManager.RegisterAddIn(Uri manifestUri, String addInName, String officeApplication, String friendlyName, String description, Int32 loadBehavior, String compatibleFrameworkXML, Boolean runLocal ) Microsoft.VisualStudio.Tools.Office で。

ビルド サービスは、ビルド サービスがインストールされている Windows Server 2012 の管理者であるドメイン アカウントとして実行されます。Visual Studio 2015 と Office 2016 がこの Windows サーバーにインストールされています。

ローカル PC の Visual Studio 2015 でプロジェクトをビルドすると、エラーはまったく発生しません。仕事で同じ問題を経験した場合は、助けてください。ありがとうございました。

4

2 に答える 2

1

この問題は TFS 関連ではありません。

しかし、私はこのウェブサイトでJens からの解決策を見つけました。

"

MSDN ライブラリSetOffice2007AddInRegistrationによると、 「2007 Microsoft Office システムのアドインを実行またはアンインストールするために必要なレジストリ キーを作成または削除する MSBuild タスクを定義します。」そのため、レジストリを確認したところ、まだ存在していたエントリは、VSTO がソリューションのメタデータをキャッシュするHKEY_CURRENT_USER\Software\Microsoft\VSTO\SolutionMetadataの下にあるエントリだけであることがわかりました。すべてのキーとサブキーを削除し (既存のソリューションは引き続き機能します。メタデータがキャッシュされているだけです)、ソリューションは正常にコンパイルされました。

"

于 2016-04-28T03:31:28.647 に答える
1

私はこのエラーを解決するために多くの時間を費やしてきましたが、どこにも行き着いていないので、私の経験を他の人と共有したいと思います. Office アドイン プロジェクトの XAML ビルド定義に対して MSBuild を実行すると、MSBuild にバグがあるのではないかと疑っています。

Visual Studio 2015 で新しい Word 2016 アドイン プロジェクトを作成しました。カスタム コードはありません。プロジェクトには自動生成コードしかありませんでした。Visual Studio はエラーなしでプロジェクトをビルドしました。MSBuild Diagnostic output Verbosity オプションを選択してビルドを実行します。

その後、TFS Build Server がビルドを実行するのと同じパラメーターを使用して、コマンド ラインから MSBuild プログラムを実行します。唯一の違いは、詳細なログを作成する診断詳細ログ オプションです。Visual Studio と MSBuild によって生成された 2 つのログを比較しました。MSBuild ログは、ワークフローがアドインの登録解除のステップに達していないことを示していました。実際には、アドインを登録解除せずに登録しようとしました。Visual Studio ログは、Visual Studio ビルドがアドインを登録解除し、その後正常に登録したことを示しました。

TFS 2015 の機能を学んで、エージェント プールとビルド エージェントについて知りました。XAML で定義されたビルドに対して MSBuild を実行する代わりに、TFS 2015 ビルド エージェントは Visual Studio を使用してアプリケーションをビルドすることに気付きました。そこで、ビルド サーバーにエージェント プールとビルド エージェントをセットアップすると、ほら、アドインが正常にビルドされました。

結論として、アドイン プロジェクト用に XAML 定義のビルドがある場合は、TFS 2015 では使用しないでください。TFS 2015 で提供されるエージェント プール機能を使用して、新しい TFS ビルド定義を作成します。これにより、ビルドが TFS ビルド サーバー上で行われることが保証されます。 Visual Studio 環境の PC とまったく同じです。

于 2016-05-26T03:39:53.227 に答える