I would recommend having one very thin domain project that does most of the hard lifting, but still provides a common level for your types of projects (WPF, ASP.Net, etc.).
Since the Domain is designed to work with all types of projects, it cannot contain namespaces that are not available in all your types of projects, it will be difficult.
In order to decide that I am proposing to create a Services project that will provide the advanced functionality of your project, the Domain through the compiler or Services directives can be a namespace with different projects per project type. (This method, when sending says only Silverlight, you send Services.Silverlight along with the Domain and your Silverlight project.) This will reduce the number of compatibilizing directives.
After completing the above projects, you can start creating front-end and application logic for all of your other projects. Then you can use auto-mapper or other tools to match (possibly) view models with models from the Domain .
Having a Domain and Services , which is one layer of all the basic logic, in the future it will be easier for you to extend to other types of projects.
source share