トップ回答者
VSTOアドインでWebViewをインストールしてビルドするとエラーが発生する

質問
-
「PowerPoint2013と2016 VSTOアドイン」(Visual C#)のプロジェクトでWebViewをインストールしてビルドするとエラーが85件発生します。
・エラー例
「マニフェストの生成エラーです。ファイルまたはアセンブリ 'C:\Users\<ユーザ名>\.nuget\packages\microsoft.windows.sdk.contracts\10.0.18362.2005\ref\netstandard2.0\Windows.Media.Capture.GameBarContract.winmd'、またはその依存関係の 1 つが読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました。」・NuGet
WebViewはNuGetで以下をインストールしています。
Microsoft.Toolkit.Forms.UI.Controls.WebView
※使用しているEdgeが非Chromium版のため、WebView2は使用しておりません。・パッケージ管理形式
パッケージマネージャ―で管理形式を「PackageReference」に変更しています。・他のプロジェクトの場合
新規プロジェクト作成時にWindowsアプリケーションを選択した場合はWebViewをインストールしてビルドしてもエラーは発生せず、
WebViewをセットしたFormも問題なく起動できました。・Edgeバージョン
Microsoft Edge 44.18362.449.0
Microsoft EdgeHTML 18.18363・VSTOアドイン開発環境
Visual Studio Professional 2017
Version 15.9.26・Officeバージョン
Microsoft Office Professional Plus 2013
PowerPoint 2013 (15.0.5233.1000) 32bit・OSバージョン
Windows10 Pro 1909 18363.959 64bitWebViewはVSTOアドインには対応していないのでしょうか?
または、32bit版OfficeにはWebViewが対応しておらず、64bit版Officeであれば対応しているのでしょうか?よろしくお願い致します。
回答
-
VSTOやMicrosoft.Toolkit.Forms.UI.Controls.WebViewではなく、Microsoft.Toolkit.Forms.UI.Controls.WebViewが依存しているとなっているMicrosoft.Windows.SDK.Contractsの影響です。
Microosft.Windows.SDK.Contractsが*.winmdファイルを参照するような形で、VSTOプロジェクトもこれらの*.winmdファイルにも依存しているとVSTOのビルド設定(Microsoft.VisualStudio.Tools.Office.targets)が誤認してます。
VSTOプロジェクトで*.winmd内のクラスを呼んでなければ不要です。<ItemGroup> <PackageReference Include="Microsoft.Windows.SDK.Contracts"> <Version>10.0.18362.2005</Version> <IncludeAssets>none</IncludeAssets> </PackageReference> </ItemGroup>
VSTOプロジェクトの*.csprojファイルにあるPackageReferenceにIncludeAssets設定を追加して無視するようにしてください。個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
- 回答としてマーク West西 2020年8月28日 6:21
すべての返信
-
West西さん、こんにちは。フォーラムオペレーターのKumoです。
MSDNフォーラムにご投稿くださいましてありがとうございます。
ご質問はVSTO アドインに関連しているように見えますね。
よりよいサポートのため、英語となりますが、Stackoverflowにご投稿いただくことをお勧めします。
どうぞよろしくお願いいたします。MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~
-
VSTOやMicrosoft.Toolkit.Forms.UI.Controls.WebViewではなく、Microsoft.Toolkit.Forms.UI.Controls.WebViewが依存しているとなっているMicrosoft.Windows.SDK.Contractsの影響です。
Microosft.Windows.SDK.Contractsが*.winmdファイルを参照するような形で、VSTOプロジェクトもこれらの*.winmdファイルにも依存しているとVSTOのビルド設定(Microsoft.VisualStudio.Tools.Office.targets)が誤認してます。
VSTOプロジェクトで*.winmd内のクラスを呼んでなければ不要です。<ItemGroup> <PackageReference Include="Microsoft.Windows.SDK.Contracts"> <Version>10.0.18362.2005</Version> <IncludeAssets>none</IncludeAssets> </PackageReference> </ItemGroup>
VSTOプロジェクトの*.csprojファイルにあるPackageReferenceにIncludeAssets設定を追加して無視するようにしてください。個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
- 回答としてマーク West西 2020年8月28日 6:21