Portable Library Tools Release

We just released the official version of the Portable Library Tools. The set of tools and updates to .net platform allow you to create dlls that can be used in .NET Framework, Silverlight, Windows Phone, and XBOX projects. You can download the tools here and read more about them on MSDN.

Comments (12)

  1. Gutemberg Ribeiro says:

    Unfortunatelly we cant use it very well on Silverlight. We dont have INotifyPropertyChange and also ObservableCollection<T> on it. Make it virtually impossible to use classes shared for Binding for sample.

  2. Gutemberg, INotifyPropertyChange is threre. Indeed the ObservableCollection is not; we are trying to add it to the next release (no promisses though).

  3. Stefan Dobrev says:


    Can you elaborate why ICustomAttributeProvider was removed in the official release?



  4. Sergio Navarro says:

    Thanks a lot for this library, it is just what I need to avoid to be maintaining multiple projects at the same time for the same source files.

    Do you think it will be possible System.Diagnostics.StackTrace class could be available on the next release?


  5. Sergio Navarro says:

    I agree with with Gutemberg Ribeiro, ObservableCollection it is a must for us.

  6. Stefan, we removed ICustomAttributeProvider as we want to make sure that all technologies we ship in the portable library integrate well with new technologies that are being developeed. If you look at new MEF update (http://mef.codeplex.com/) it contains a technology we call ReflectionContext. We want to make sure ICAP and ReflectionContext don't overalp before we commit to suppoting them offiically in the portable subset.

    Sergio, thanks for you feedback. Could you provide some more data on why StackTrace is important to you? Is it a nice to have and you have a workaround, or it's a must have API for library development?

    And yes, we have ObservableCollection very high on our todo list.

  7. sdobrev says:

    I see your point about ICustomAttributeProvider. The problem is that there are existing APIs that depend on this interface and are part of the portable tools. For example our particular issue is ServiceKnownTypeAttribute which contract requires the method that you specify to take a single parameter of type ICustomAttributeProvider. This is kind of breaking for our scenario and we reverted to the release candidate of the tools.



  8. Tom says:

    Good to hear! Though not having ObservableCollection  in the package makes the whole thing not very usable 🙁

  9. Fduch says:

    Can you please explain why a simple .Net library that doesn't reference any other libraries (except the implicit mscorlib reference) is not portable?

    Why do we have to use the Portable Library Tools to get any portability even in the most simple and "pure" cases?

  10. Different .NET redists (Silverlight, .NET Framework, Windows Phone) have different features available in their corresponding mscorlibs. The portable library project ensures that you can call only features that are available in all portability targets.

  11. Adrian says:

    Where should I post questions regarding PCL?  I first posted the following at social.msdn.microsoft.com/…/477cdd19-ee88-4746-97fe-59b8dbd44e0a but received only silence.

    I'm trying to put my implementation of DelegateCommand (a.k.a. RelayCommand) into a portable class library (PCL) that targets both .NET and Metro-style UIs.  The implementation of the CanExecuteChanged event is:

    public event EventHandler CanExecuteChanged {

     add { CommandManager.RequerySuggested += value; }

     remove { CommandManager.RequerySuggested -= value; }


    The CommandManager, however, does not seem to be available in this PCL.  So then what should the implementation of the CanExecuteChanged member look like?

  12. Hi Adrian. I asked Dave to reply to the original msdn thread, which he did.

    Thanks for the feedback.