Problem: "cannot locate license assembly" during Team Build process when using third-p
Hi there,
when using Team Build with a project that uses third-party components such as Infragistics that use the license.lix licensing mechanism I get the error "cannot locate license assembly" during the compilation phase of the build process.
I do not consider installing the Infragistics controls on my build servers since they are supposed to be clean. What am I doing wrong here? What would be the recommended way to accomplish this? Why is a license neccessary to compile?
Thanks,
Neno
Steps to Reproduce:
-> Open Team Explorer
-> Create a BuildType for a Team Project that references Infragistics
-> assemblies Start Build
=> Receive build error "cannot locate license assembly"
[1338 byte] By [
Neno] at [2007-12-30]
Hello Neno - The project that references the third party controls that you are talking about, can these be built on a clean machine without any of the third party support at all? It is unlikely that it is possible. In order to build it, you would need references to libraries perhaps, but I am unsure what the licensing issue is about.
What you can do is:
1. log on to the build machine
2. navigate to the <build directory>\<teamproject>\<buildtype>\sources folder
3. do "msbuild mysolution.sln"
If you hit compile issues here, then it means that you need certain 3rd party support on the build machine. Please post the console display after following the steps above.
Thanks Anutthara,
Yes, it's definetly a compile error (so the exception is also thrown when calling "msbuild mysolution.sln"). However since this is a build server it should stay clean and I would love to prevent the need to install the third-party components redist pack on it. All referenced DLLs are part of the project and are copied into the source directory when "Get-Latest" is called.
Any further ideas what to do?
All Best,
Neno
I am sorry, but I have no idea about the basic requirement to build projects referencing your third party dll since this will be totally dependent on the 3rd party dll that you are using.
If you could please mail me the sources at anutthar at microsoft dot com, I will certainly try to help further.
I apologize for posting so many replies here but it is just for future references and to help others that have the same problem. I was able to find a solution.
On the build machine you don't need to install Infragistics, instead:
- Create a project sub folder named "External Assemblies" for example.
- Add the Infragistics assemblies that you are using in your projects to this subfolder
- Then add this folder as the hint path for the projects or when you add a new reference use the assemblies in this folder.
- Exclude the file license.licx from the project(s), you will find this file under the \properties\ folder better.
- Delete this file in the Source Control
- The problem is that if someone has deleted this file it will be re-added to the Source Control when he or she performs an operation on the licensed components in design time. You just have to make sure that this file never sees the light in your Source Control. This is something that will be fixed in "Orcas". Comparable to the exclusion of .pdb files from Source Control.