2017-09-04 8 views
2

この一見無意味な質問は、このような高得意なユーザーからは奇妙に思えるかもしれません。「SQL Server管理オブジェクトDLLファイルをリンカ経由で実行する」はどうすればよいですか?

.NETアプリケーションでSQL Server SMO DLLを配布したいと考えています。 license termsを伴うofficial nuget packageがあります。これらは次の節を含んでいます:

ii。配布要件。あなたが頒布するあらゆる再頒布可能コードは、あなたが

必要があります[...]あらゆる再頒布可能コードのための

  • が.dllファイルのファイル名拡張子を持つ、とのリンカーを介して、このような再頒布可能コードを実行しているの結果のみを配布あなたのプログラム。

"私のプログラムでリンカを使ってDLLを実行する"必要があります。これまでのところ、私はWindowsではDLLs are the output, not the input of the linking processという印象を受けました。

どうすればいいですか? MSの弁護士は迷ったのですか、これは実際に実行可能ですか?

+0

Hum。さて、あなたは何かにDLLの名前を変更することができます、と思います。 – arrowd

+0

これは、ソースコードや中間ファイルをアセンブリdllに含めないでください**ことを意味しませんか?それは、開発者がSMO DLLを除いて、ナゲットパッケージに含まれる他のリソースを含むことを望まない – Sidewinder94

答えて

0

これは本当に法的な問題であり、私は弁護士ではないですが、私は手がかりがここにあると思う:

あなたがソフトウェア(「再頒布可能コード」)のオブジェクトコードを複製および頒布することができますであなたが開発するプログラム。そして

私は仮定は、ライセンスが配布可能ではない、ソースコードを、カバーする、とあなたはこれをコンパイルすることが許可されている、DLLファイルの一部としてなど、あなたのプログラムにリンクし、実行可能ファイルを配布するということだと思いますコード。ただし、DLLを使用している場合は、DLLは、プログラムを実行するために必要なコンパイル単位のオブジェクトコード、つまりリンカーを介してOBJファイルを実行することによってインクルードされるオブジェクトコードのみを含む必要があります。

しかしこれは明らかではなく、とにかくDLL形式で配布されているSMOには当てはまりません。

SMOの場合、同じ原則がそうであるようです。アプリケーションが使用しないDLLを配布しないでください。

しかし実際の解決策はエンドユーザーにNuGetパッケージをインストールする必要があると思われます。

関連する問題