2017-07-19 14 views
1

Windows 10開発用PCで問題なく動作するC#(Visual Studio)を使用してアプリケーションを開発しました。しかし、目的のターゲットPCにアプリケーションをコピーして実行すると(Server 2012 R2)、ファイルまたはアセンブリをロードできないという例外が表示されます。Microsoft.SqlServer.ConnectionInfo、Version = 13.100.0.0。このSQL/C#DLLの競合を解決するにはどうすればいいですか

dllのバージョン13をターゲットPCのプログラムディレクトリにコピーしてアプリケーションを実行すると、dllのバージョン14が見つからないことを通知する例外が表示されます。バージョン14をターゲットにコピーしてから、元の例外を返します。

  • Microsoft.SqlServer.ConnectionInfo.dll(私 問題を与えている1):

    私はつまり、アプリケーション内のすべての必要なDLLへの参照を持っています。 Microsoft.SqlServer.Management.Sdk.Sfc.dll Microsoft.SqlServer.Smo.dll Microsoft.SqlServer.SqlClrProvider.dll Microsoft.SqlServer.SqlEnum.dll Microsoft.Web.Administration.dll

すべてが設定されています特定のバージョン= false。

すべての必要なフレームワークがサーバーにインストールされています。また、以下では、プログラムが対話するサーバーにインストールされます。SQL Server 2012の•

ColdFusionの

(および2008が、このインスタンスは、プログラムで使用されていない)

。 exeはインストーラを介してインストールされ、そのインストールには必要なdllが含まれています。このdllはexeと同じディレクトリにインストールされます。

ディレクトリにすべての権限があり、プログラム自体のアクセス権が最も高くなっています。

接続文字列はユーザ​​ーが選択でき、プログラムがインストールされている場所に応じてデフォルト値が正しい文字列になります。

この競合を解決するのに役立つアイディアがありますか?

ありがとうございます。

よろしく、 Ken。

ADDITIONAL INFORMATION

のVisual Studio内に示さMicrosoft.SqlServer.ConnectionInfo.dllのバージョン番号が13.100.0.0です。私は、プロパティに示されているパスからプログラムディレクトリにDLLをコピーしました。何だと思う?私がこのプログラムを走らせたとき、バージョン14.100.0.0が見つからないという例外が私に伝えられました!

これは、ファイルの[プロパティ]ページ(13.0.16106.4)に表示されているものと同じDLLのバージョンです。

答えて

1

SMOは常にGACにインストールされるため、/ binフォルダにコピーするファイルは関係ありません。 GACのアセンブリはローカルのアセンブリをオーバーライドします。

SMOのSQL 2016バージョンを参照しました。したがって、ターゲットサーバーにインストールするか、ターゲットサーバーにすでに存在するSMOのバージョンに対してプロジェクトをビルドする必要があります。

が原因でロードと口論のとSMOを展開することを https://docs.microsoft.com/en-us/sql/relational-databases/server-management-objects-smo/files-and-version-numbers

注を参照してください、とSMOは本当に古いAPIのスタイルだ、それはあなたのアプリはちょうどTSQLとSystem.Data.SqlClientのでSQL Serverの管理を実行させることが多い方が良いでしょう。

0

[解決済み]

ダンバガリが発生しました。

Visual Studioプロジェクトからすべての参照を削除し、それらを再追加して機能させました。

この問題は、C:¥Program Files(x86)¥Microsoft SQL Server¥130¥SDK¥Assembliesではなく、プログラムのインストールディレクトリを指していたDLL参照によって発生しています。プロパティボックスが完全に展開されていないため、私は気づきませんでした。

他の人が私の経験から恩恵を受けることを望みます。

Davidさんのコメントありがとうございます。

関連する問題