Reputation: 2261
I'm looking at the new shared Project Feature in Visual Studio 2013. It's a pretty nice Feature, but how can I use code from a "Base" shared Project in a "Higher Level" shared Project? Looks like the referencing feature is missing in shared Projects...???
How to build big real world business apps without the possibility to separate the code in multiple projects?
Update: I think I was not clear enough:
Let's say you want to develop a universal app for the Windows platforms and using xamarin for iOS and android support. So you put platform specific code to the platform specific Project, define Interfaces in the shared libraries and pass the platform specific code via dependency injection to the shared code and reference all platform specific libraries from from the platform specific projects.
So far so good...
But to keep the platform specific code small you develop the Business logic and a base Framework for the Business logic in the shared Projects.
Now you have a second customer. Here of course you want to reuse the base Framework again and build just a new Business and UI layer.
Now I would like to use the same framework layer in both Projects.
How to do this if references between shared Projects are not possible?
(Linking files is not a possible Option, because a normal solution im my projects has about a 1000 files or more, so you will never ever be able to keep track of all files you have to link in all Solutions. / ilMerge is also not possible - it can not merge WPF Projects and is also not working for Android and iOS...)
Upvotes: 4
Views: 1953
Reputation: 2261
Finally I found the answer and it is very simple: Just reference all shared Projects in all client projects in the solution and the compile is running fine.
The background about this: The code in shared projects is integrated into the main project during the compile like it would be in the main project directly. So to use code in one shared library from another you have to reference all shared libraries and not only the ones you directly use (this is different to normal references)
Upvotes: 4