私はスプレッドシートライトをヌゴットしました。後で使用するには、次の使用法を追加する必要があります。
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Spreadsheet;
using SpreadsheetLight;
最初の 2 つ ("DocumentFormat") が認識されるようにするには、NuGet Microsoft の "Open XML Format SDK" も必要でした。
その最新バージョン、2.5 を入手しました。
ただし、それでも、参照が必要であるというエラーメッセージが表示されました。
タイプ 'DocumentFormat.OpenXml.Spreadsheet.InlineString' は、参照されていないアセンブリで定義されています。アセンブリ 'DocumentFormat.OpenXml, Version=2.0.5022.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' への参照を追加する必要があります。
SpreadsheetLight コードのこの行は、次のメッセージを引き起こしました。
sl.SetCellValue("A1", true); // "sl" is an SLDocument
そのため、NuGot (バージョン 2.6.0.0、ランタイム バージョン v4.0.30319) の参照をプロジェクトから削除し、C:\Program Files(x86)\Open XML SDK\V2 を参照して参照を再度追加しました。 0\lib を開き、「DocumentFormat.OpenXml.dll」を選択します
その後、コンパイラの警告が表示されました:
同じ依存アセンブリの異なるバージョン間で競合が見つかりました。プロジェクト ファイルで「AutoGenerateBindingRedirects」プロパティを true に設定してください。詳細については、 http: //go.microsoft.com/fwlink/?LinkId=294190を参照してください。
ファイル システムから追加した DLL はバージョン 2.5.5631.0 であり、NuGot で参照としてインストールされていたものはバージョン 2.6.0.0 であることに気付きました。ランタイム バージョンも異なります (v4.0.30319 はNuGetting "Open XML Format SDK" ですが、手動で追加した DLL のバージョンは 2.5.5631.0、ランタイム バージョン v4.0.30319 です。
thisによると、.csproj ファイル<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
を true に変更して編集する必要があることがわかりましたが、そこには AutoGenerateBindingRedirects が存在しません。
追加する必要があるかどうか、追加する場合は(どの「ブロック」に)わかりません。私はそれを安全にプレイし、警告エンジンを和らげることを好みます。OpenXml アセンブリが競合を引き起こさないようにするにはどうすればよいですか?