Thursday, December 17, 2009
« Vertigo announces Portland office | Main | Mike Downey at Portland Silverlight User... »

The Silverlight 4 Beta does not install the System.Xml.Linq.dll assembly into C:\Program Files (x86)\Microsoft Silverlight\4.0.41108.0 along side the rest Silverlight 4 assemblies. It’s okay, it’s a beta: “You knew the job was dangerous when you took it, Fred.”

The good news is that the assembly is installed in the C:\Program Files (x86)\Microsoft SDKs\Silverlight\v4.0\Libraries\Client folder. So when adding a reference to System.Xml.Linq in a Silverlight application, just browse to the assembly in this folder and you’re off to the races.

(On 32-bit systems, replace C:\Program Files (x86) with C:\Program Files. But you knew that.)

Thursday, December 17, 2009 11:13:52 AM (Pacific Standard Time, UTC-08:00)
Hey Stuart. I'd expect this to remain the same for RTW of Silverlight 4.
The C:\Program Files (x86)\Microsoft Silverlight\4.0.41108.0 contains the assemblies that are part of the plugin. With these, Copy Local is set to false, and they are *not* packaged in the .xap. Instead, we can rely on them existing on the client machine.

The SDK folder contains system libraries that *are* packaged into the .xap. They don't exist on the client machine, and for these, Copy Local is set to true. This is done to keep the download size of the Silverlight plugin to a minimum.

System.Xml.Linq.dll has been one of the SDK .dlls in 2 and 3, and I'd expect it to keep its home in the SDK folder.
Monday, December 28, 2009 5:07:50 PM (Pacific Standard Time, UTC-08:00)
That's good information and it makes sense, too. Thanks. In that case, I'd say that the Add Reference dialog for Silverlight projects should be smart enough to know about both of these locations instead of making the user track them down. In a SL project, when I select Add Referece, the .NET tab lists no components at all.
Comments are closed.