このエラーはVS2013です
Could not load file or Assembly 'DocumentFormat.OpenXml, Version=2.0.5022.0, Culture=neut
ral、PublicKeyToken = 31bf3856ad364e35 'またはその依存関係の1つ。
私のweb.config
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.Microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="hjkom_med_web_udvConnectionString" connectionString="Data Source=M95;Initial Catalog=hjkom-med_web;Persist Security Info=True;User ID=HJkom-MED_web;Password=bvkeB7hh" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add Assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add Assembly="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
**<add Assembly="DocumentFormat.OpenXml, Version=2.0.5022.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>**
</assemblies></compilation>
</system.web>
</configuration>
私はwindowsbaseや他の多くのものを挿入しようとしました。
ソリューションを検索して検索しましたが、修正方法を知っている人はいますか?
Localhostで実行されているコンピューターに新しいバージョンの.dllがインストールされていて、サーバーが同じ.dllの古いバージョンを実行していたため、この問題が発生しました。
私はそれを更新しましたが、その後はすべてうまくいきます。
あなたの場合、これで利用可能なDocumentFormat.OpenXmlバージョン2.5をインストールします Microsoft link
この回答を書いている時点では、Open XML SDKには3つのバージョンがあります。
ほとんどの場合、プロジェクトで参照しているDLLバージョン2.5はマシンにインストールされています。
必要なv2.0アセンブリを取得するには、上記のNuGetを使用することをお勧めします。
この例を見ることができます。
サンプルをダウンロードし、インポートしました
dlls(realed dllsはプロジェクトに既にあります。私はそれらを使用しました)。その後、私のエラーはなくなりました。試してみてください。理由はわかりません。しかし、重要なのは私のプロジェクトが今働いていることです。
最近同じ問題がありました。
ライブラリで参照されているClosedXMLがあり、コンソールアプリケーションでライブラリを使用すると、参照エラーが表示されます。
これは、DocumentFormat.Excel、ExcelNumberFormat、およびFastMember.Signedがコンソールアプリケーションの出力フォルダーにコピーされないためです。
2つのソリューション:
1)closedXML nugetパッケージとそのすべての依存関係をクライアント(この場合はコンソールアプリケーションプロジェクト)にインストールします。
2)dllをコピーするには、ライブラリでそれらを参照する必要があります。次の関数をライブラリに追加し、静的コンストラクターから呼び出します。
/// <summary>
/// This code is here to embeed the following libraries :
/// - DocumentFormat.Excel
/// - ExcelNumberFormat
/// - FastMember.Signed
/// </summary>
private static void EmbeedNeededLibraries()
{
Action<Type> noop = _ => { };
var lib1 = typeof(DocumentFormat.OpenXml.OpenXmlAttribute);
var lib2 = typeof(ExcelNumberFormat.NumberFormat);
var lib3 = typeof(FastMember.ObjectAccessor);
noop(lib1);
noop(lib2);
noop(lib3);
}
そのソリューション内のすべてのプロジェクトで、Packages.configファイルをチェックインします。ソリューション内のすべてのプロジェクトで同じである必要があります。参考のため