SQL2008サポートを.NET2.0アプリケーションに追加しようとしています。ただし、私の独特の欠点は、一部のユーザーが引き続きSQL2005を使用することであり、SQL2008クライアントコンポーネントのインストールをユーザーに要求したくないということです。
SQL2008に必要なDLLの実際のセットは、SQL2005とは異なります。コードは同じままにすることができます。
結論として、VS2005で(またはアセンブリファイルを手動で編集して)次のように言う方法が必要です。
ユーザーがDLL_1v2、DLL_2 v2、およびDLL_3v2を使用している場合はそれらを使用します。そうでない場合は、DLL_1v1およびDLL_2v1を使用してください。
リフレクションを使用してDLLをロードする方法を検討します。これは、SQL2008クライアントコンポーネントを必要とすることを除けば、ほとんど唯一のオプションのようです。
DLLの再配布については、ライセンスを読みました。そこには、私たちに当てはまるいくつかの疑わしい用語があります(たとえば、ホストされたソフトウェアの場合)。さらに、クライアントデータは非常に機密性が高いため、さらに複雑な問題になります。そのため、クライアントは広範な承認プロセスを経て、含まれているDLLなどのすべてをインストールできるようになります。
助けてくれてありがとう!
アイデアをありがとう!しかし、私たちはまだそこにいません...
いいえ、ユーザーはインストール先のDBバージョンを選択しません。同じインストールであっても、SQL2005やSQL2008を許可することを目的としています。たとえば、管理アプリケーションを使用すると、ユーザーはさまざまなSQLサーバー間でデータベースインスタンスを管理できます。
SQL2008のサポートが必要かどうかを選択するためのダイアログを追加できることを理解しています。ただし、これによりテストマトリックスがさらに拡張され、回避しようとしています。
DLLを直接参照する必要があると思います。私はデータベースを使って、単に接続してクエリを実行するだけでなく、もっと多くのことを行っています。
必要なDLLは次のとおりです。
- Microsoft.SqlServer.ConnectionInfo
- Microsoft.SqlServer.Management.Sdk.Sfc
- Microsoft.SqlServer.Smo
- Microsoft.SqlServer.SmoExtended
- Microsoft.SqlServer.SqlEnum
他のアイデア、考えはありますか?