Targeting both .NET 3.5 and Silverlight
.net, build, csproj, msbuild, silverlight
Solution
Have you also ruled out linking to the files inside the your project from a Silverlight project? That's a fairly common approach to sharing an implementation between Silverlight and the full CLR. Sharing Code Between .NET and Silverlight Platforms
Also, according to Justin Angel you can reference and use a Silverlight class library from the full CLR. I haven't tried this myself, and it leaves some questions unanswered, but it does make the scenario straightforward: http://silverlight.net/blogs/justinangel/archive/2008/12/29/using-silverlight-dlls-on-the-desktop.aspx
Problem
Let's imagine I already have a project building .NET 3.5 assembly. Now I want to build this assembly for Silverlight, and moreover, maintain its Silverlight version with minimal efforts further. What is not acceptable: - Creating separate project for Silverlight build What is acceptable: - Adding custom directives allowing me to target either Silverlight or .NET dependently on e.g. MSBuild properties. - Adding special build configurations for Silverlight - Adding #ifdef Silverlight / #endif sections to the source code. - Generally any other modification of .csproj / .cs. So basically, I'd like to maintain a single project, but target two frameworks. I don't want to maintain two separate projects, because this may lead to mistakes like forgetting to include a new file. If there are many project and big team, this is really important to exclude such mistakes. If this is completely impossible, any solution providing similar benefits is acceptable.