none
VSTOアドインでWebViewをインストールしてビルドするとエラーが発生する RRS feed

  • 質問

  • 「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 64bit

    WebViewはVSTOアドインには対応していないのでしょうか?
    または、32bit版OfficeにはWebViewが対応しておらず、64bit版Officeであれば対応しているのでしょうか?

    よろしくお願い致します。

    2020年8月25日 2:27

回答

  • 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
    2020年8月27日 3:41

すべての返信

  • West西さん、こんにちは。フォーラムオペレーターのKumoです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    ご質問はVSTO アドインに関連しているように見えますね。
    よりよいサポートのため、英語となりますが、Stackoverflowにご投稿いただくことをお勧めします。

    どうぞよろしくお願いいたします。 

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2020年8月26日 7:18
    モデレータ
  • 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
    2020年8月27日 3:41
  • 返信ありがとうございます。

    教えて頂いた記述をcsprojファイルの中に追加してリビルドしたところ、エラーが解消されてVSTOアドインを立ち上げることができました。

    本当にありがとうございました。

    2020年8月28日 6:27