[nem-en] Multiple project solutions
Igor Tkachev
it at rsdn.ru
Sat Jan 6 17:49:32 CET 2007
Hello Kamil,
We have two types of references in Visual Studio: assembly/COM references
and project references.
First type is supported by LibraryReferenceManager and it's OK. The
only problem here is what we discussed earlier - it can lock dlls.
Second type of references supports references to the projects in the
same solution. The difference is that metadata of those projects has
to be used without project compilation. For example, project B has a
reference to project A. Project A has a method Foo(), I use this
method from B. Now if I change the signature of Foo and switch back to
B, this change should be immediately available in B without
compilation of A. This is the way C# projects work.
The integration provides the incremental (on demand) compilation. So,
we keep tracking of every single change and rebuild type tree if it's
necessary. Also we can reset the tree if a project reference changed.
It's not a problem.
What we need is, in addition to supporting the assembly references,
the ManagerClass (whoever it is) should be able to read type
information from other projects.
I am not sure about the implementation details. Here is what we have.
Each project in the solution is represented by a ManagerClass.
Probably, the ManagerClass can maintain a list of other ManagerClasses
and read type info from this list. Something like that.
Saturday, January 6, 2007, 5:33:14 AM, you wrote:
> btw, can you explain why exactly do you need it? Is it
> - the "locking" issue, you mentioned earlier, but did not explain deeper
> - some memory / perf. savings
> - having InternalTypes from different projects the same, so you can
> test for equality between them
> If this is just a problem of using "Assembly.Load" several times on
> the same assembly, then we could just make similar static / global
> cache to
> unless (_loaded_assemblies_by_name.Contains (assembly.FullName)) {
> _loaded_assemblies_by_name [assembly.FullName] =
> LibraryReference (this, assembly); // store the pre-loaded reference
> from LibrariesLoader.n
> 2007/1/6, Igor Tkachev <it at rsdn.ru>:
>> Hello devel-en,
>>
>> Michal, Kamil,
>>
>> We have another issue related to the multiple project solutions and we
>> need your help.
>>
>> We can have more than one project in the same solution and each
>> project has associated ManagerClass. Currently, ManagerClass can load
>> types from assemblies. We need ManagerClass to be able to use types
>> from other projects, I guess it should read types from other
>> ManagerClasses.
>>
>> Can we do it?
>>
>> --
>> Best regards,
>> Igor
>> mailto:it at rsdn.ru
>>
>>
>>
>> _______________________________________________
>> https://nemerle.org/mailman/listinfo/devel-en
>>
--
Best regards,
Igor mailto:it at rsdn.ru
More information about the devel-en
mailing list