Like some some people on this forum, I am isolating all of my GoDiagram code in a UI dll so that the not everyone who works on my project needs a license. I was able to embed the license into the host exe.
Many different developers in my organization need to be able to build the host exe. Since the license is embedded into the host exe, these developers need to add a .net reference to northwoods.go.dll in order to compile the exe. Is it legally acceptable to distribute this dll to all developers, even though not all of them have licenses? Technically, embedding a license does not require binary development or binary evaluation licenses. Of course, developers who actually develop the GoDiagram UI dll’s will have license?
Any machine that is used for compiling/linking the executable assembly will need a binary development license installed on that machine. The “embedding” of a license is actually done by the Microsoft License Compiler, and it is what requires the presence of a valid license key.
You can certainly distribute the Northwoods.Go.dll assembly wherever you want. But I’m sure everyone would agree that compiling code referring to an assembly constitutes developing with that assembly. So all the developers that compile code that has no reference to Northwoods.Go.dll don’t need any GoDiagram licenses.
Let me see if I understand what you said. Let’s say my project has the following components:
foo.exe - this executable is compiled with licenses.licx, has a reference to northwoods.go.dll, but doesn’t actually have any source code that refers to northwoods
a.dll - this a dll that has a reference to northwoods.go.dll and has code that uses the northwoods library
b.dll - this doesn’t refer to northwoods at all
c.dll - that also doesn’t refer to northwoods at all.
Let’s say I have 3 developers, A, B, and C.
Developer A creates a program with foo.exe and a.dll. This developer obviously needs a license because a.dll uses northwoods components. He embeds a valid license into foo.exe.
Developer B creates a program with foo.exe and b.dll. He is able to compile foo.exe because Northwoods.Go.dll is freely distributable, but he doesn’t not have a valid license. Therefore an invalid license is compiled to foo.exe, but since b.dll doesn’t refer to northwoods at all, his program runs fine. a.dll isn’t distributed with his program.
Developer C creates a program with foo.exe and c.dll. Similar to B, he doesn’t have a valid license, but embeds an invalid license into foo.exe in his environment. He also doesn’t have any problems because c.dll doesn’t refer to northwoods, and a.dll isn’t distributed.
All of these developers are using the same project to generate foo.exe. Are you saying that they all need a license, even though only one is actually using the library?
Anyone wanting to compile Foo.exe or A.dll will need a development license.
The source code for Foo.exe does have code that refers to Northwoods.Go.dll. It is in the licenses.licx file, which is compiled by the Microsoft License Compiler. As far as I know, we are just conforming to Microsoft’s .NET licensing architecture.
So whether or not developers B or C really need a license depends on whether or not they really need to compile Foo.exe. I know that our customers make different decisions on this, depending on how they organize their development teams.
You can talk with Scott (email@example.com) to discuss the alternatives/details.