Forum Xamarin.iOS

Repl in the frameworks folder......

BungleBungle GBMember

Background:

A while ago we hit a problem when System.Xml.dll got re-written to use the Microsoft code. The problem was basically that iOS can't do a CompiledXSLTransofrm. The regular XSLTransform is deprecated in favour of the CompiledTransform. Since iOS can't do the compiled, Xamarin just redirect the call to compiled transform api to use the non-compiled transform. The Xamarin non-compiled System.XML Implementation obeyed disable-output-escaping directives but the Microsoft implementation had a bug that didn't obey these that was sorted in the compiled transform. So when Xamarin switched to use the Microsoft code base and re-direct the compiled transform to the non-compiled transform we get a bug that output escaping is no longer disabled. So the same code on iOS gets a different output if you run it in Windows... not very cross platform :( The bugs been open 6+ months now and gathering dust https://bugzilla.xamarin.com/show_bug.cgi?id=36556

The Question:

The workaround for this was to make our machines build using the old system.xml implementations. So each time we upgrade the Xamarin.iOS frameworks we have to faff around symbolically linking /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS/System.Xml.dll etc back to an older version. When i upgrade to Xamarin.iOS 9.8.1.4 this workaround method stopped working an the application started escaping output again. I've just found it does so until i symbolically link stuff in the /Library/Frameworks/Xamarin.iOS.framework/Versions/9.8.1.4/lib/mono/Xamarin.iOS/repl folder as well. I'm a little confused as to why stuff in the repl folder is being used and seems to be what the build output is generated against?

Sign In or Register to comment.