Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Targeting both .NET 3.5 and Silverlight

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.

like image 678
Alex Yakunin Avatar asked Jul 03 '09 18:07

Alex Yakunin


People also ask

How do I target multiple net frameworks?

To target multiple frameworks, change <TargetFramework> to plural <TargetFrameworks> and include monikers for different frameworks you want to target separated by ; . Here, we will support two more frameworks . NET Framework 4.0 & 4.6. So include net40 and net46 monikers respectively as shown below.

Is .NET 3.5 still supported?

For operating systems released prior to Windows 10 version 1809 and Windows Server 2019, . NET 3.5 SP1 remains a component of the Windows version on which it is installed. Future Windows releases will not affect the lifecycle of . NET 3.5 SP1.

Can you have multiple .NET frameworks installed?

Microsoft designed the . NET Framework so that multiple versions of the framework can be installed and used at the same time. This means that there will be no conflict if multiple applications install different versions of the . NET framework on a single computer.

Can I install both .NET Core and .NET Framework?

NET Core installations are completely independent from the version of . NET Framework. In fact, you can actually install multiple version of . NET Core side-by-side on the same machine (unlike .


2 Answers

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

like image 64
OdeToCode Avatar answered Sep 18 '22 19:09

OdeToCode


I concur with Scott. Save yourself a lot of pain. Two projects that share the same codebase is the way to go. You'll need it to use VStudio in both environments, to use different libs, to include/exculde files, to do so many things...easily!

The reason's for having two projects far outweight the excuses for having one.

like image 25
Ray Avatar answered Sep 22 '22 19:09

Ray