Skip to content
dtchepak edited this page Jun 22, 2011 · 2 revisions

Brendan is updating the build process to support multiple framework versions, including Silverlight.

##Versions Supported

  • .NET 3.5 - build from command line using:

    rake target="NET35"

    or just rake as NET35-Debug is the default build.

Status: builds and passes all tests. Deploy build not yet working.

  • .NET 4.0 - build from command line using:

    rake target="NET40"

Status: only builds. Need to add toggle for using NUnit 4.0 test runner. Signing issue with System.Core and ILMerge (disabled currently)

  • Silverlight 4.0 - build from command line using:

    rake target="SL40"

Status: only builds. NUnit test runner has issue with mscorlib version found.

##Differences between Silverlight and .NET versions

  • SerializationInfo is internal in Silverlight - so custom exceptions had to be modified when building against the CoreCLR. I suspect this was due to FxCop rules around custom exceptions, so perhaps this will be supported in SL5. This means one test from the .NET specifications is not valid in the Silverlight port. All other tests pass.
  • Castle.Core 2.5.2 for Silverlight was added.
  • An old build of Rhino.Mocks 3.5 for Silverlight was added to get the specifications to pass. Not happy with this - as I can't find the source for it, and it appears to be an unsupported build. An API change around .Matches for the Silverlight port required some compiler includes to get working.
  • RobustThreadLocal - which wraps functionality from the Reactive extensions around accessing a value from multiple threads - is not available in the Silverlight port. This will impact multi-threaded tests until a workaround can be coded up. It depends on may parts of Reactive Extensions - ConcurrentStack, some sealed classes, etc - so cannot be used in isolation currently.

##Gotchas

  • Multi-threaded tests will not work currently.

##TODO

  • Pull latest changes from trunk to my branch and update
  • Get multi-threaded support for tests into framework.
  • Obtain updated Rhino.Mocks build and kill off workarounds.
  • Ping owners and see what their plans are for the outstanding acceptance tests.
  • Get signed builds back for .NET 4.0
  • Get NUnit test runner working for .NET 4.0 and SL 4.0
Clone this wiki locally