2017-09-04 1 views
2

Cette question apparemment absurde peut sembler étrange d'un tel utilisateur de haut-rep, alors s'il vous plaît gardez avec moi.Comment "exécuter les fichiers DLL de l'objet de gestion SQL Server via un éditeur de liens"?

Je souhaite distribuer les DLL SMO SQL Server avec mon application .NET. Il y a maintenant un official nuget package avec license terms. Ceux-ci contiennent la clause:

ii. Exigences de distribution. Pour tout Code Distribuable que vous distribuez, vous devez

pour tout Code Distribuable [...]

  • ayant une extension de nom de fichier .dll, distribuer uniquement les résultats de l'exécution dudit Code distribuables par un agent de liaison avec votre programme

Apparemment, je dois « exécuter le dll par un éditeur de liens avec mon programme ». Jusqu'à présent, j'étais sous l'impression que, dans Windows, DLLs are the output, not the input of the linking process.

Alors, comment ferais-je cela? Les avocats de la SEP ont-ils gâché ou est-ce réellement faisable?

+0

Hum. Eh bien, vous pouvez renommer DLL en quelque chose d'autre, je suppose. – arrowd

+0

Cela ne signifie-t-il pas que vous devez ** NOT ** inclure le code source ou un fichier intermédiaire avec une DLL d'assembly? Cela ou ils ne veulent simplement pas que le développeur inclue une autre ressource incluse dans le paquet nuget à l'exception des DLL SMO – Sidewinder94

Répondre

0

C'est vraiment une question juridique et je ne suis pas avocat, mais je pense que l'idée est ici:

• Vous pouvez copier et distribuer le code objet sous forme de logiciel (« Code distribuables ») dans les programmes que vous développez; et

Je pense que l'hypothèse est que la licence couvrira le code source, ce qui est distribuable, et vous êtes autorisé à compiler ce, lien à votre programme, y compris dans le cadre d'un fichier DLL, et distribuer l'exécutable code. Toutefois, si vous utilisez une DLL, la DLL doit uniquement inclure le code objet des unités de compilation requises pour exécuter votre programme, c'est-à-dire celles qui sont incluses en exécutant les fichiers OBJ via l'éditeur de liens. Cependant, ceci est loin d'être clair, et ne semble pas vraiment s'appliquer à SMO, qui est distribué sous forme de DLL de toute façon.

Pour SMO, le même principe semble être: Ne distribuez pas les DLL que votre application n'utilise pas.

Cependant, je soupçonne que la vraie solution consiste à demander à l'utilisateur final d'installer lui-même le paquet NuGet.