F# and OpenSilver v1.1
An update to the previous series of posts following the v1.1 stable release of OpenSilver.
The recipe given as before just works, when all packages are updated and the browser project build is done with net6.0
. One warning is emitted using the latest (6.0.401) SDK, about the IntermediateOutputPath
override. The fix is to create a Directory.Build.props
in the browser project directory, and move the two lines added to the project previously to the new file
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <IntermediateOutputPath>shorter file path here</IntermediateOutputPath> <BaseIntermediateOutputPath>$(IntermediateOutputPath)</BaseIntermediateOutputPath> </PropertyGroup> </Project>
While the System.Windows.Application.LoadComponent
API now exists, it requires build-time XAML compilation, and that the named class which it decorates exists in the same assembly, so at this time would only make an adjustment to the C# assembly, replacing the constructor InitializeComponent
call with one to LoadComponent
, but leaving the same inheritance in the F# layer.
It is possible that the 2.0 release will allow XAML compilation in the F# layer, but on-the-fly compilation seems not to be on the cards.
Also, in language independent mode, the ImageBrush
and ImageSource
APIs used by the original Silverlight AstroClock are now present. Alas, while that means uncommenting that XAML clause can be done without compile or runtime error, the interesting bits are marked NotImplemented
, and live in a "work in progress" source folder, so there is currently no point in doing so.