Hi,
Thanks for sharing this issue. I've reproduced it as you've described.
The problem is caused by FSharp Type Providers being used in the referenced assemblies. Type Providers are a special feature native to FSharp, allowing assemblies to create implicit design-time references to other assemblies. To my knowledge, these references aren't represented inside the build system, so NCrunch is completely unaware of them. We've implemented some handling for type providers before, but this was only inside user code whereas in this case we have them appearing in libraries.
Fixing this properly in NCrunch is something that we don't yet have an acceptable way to do, but this will likely change over the next few months with some planned internal improvements. For the time being, you can work around this problem by introducing assembly references from your FSharp project directly to the missing assemblies. If you want to avoid having these assemblies placed in your normal build output directory and accidentally shipped with your software, you can include them with a condition inside your project file, for example:
<ItemGroup Condition="'$(NCrunch)' == '1'">
<Reference Include="FSharp.Data.Xsd.DesignTime">
<HintPath>..\packages\FSharp.Data.Xsd.1.0.2\lib\net45\FSharp.Data.Xsd.DesignTime.dll</HintPath>
</Reference>
<Reference Include="FSharp.Data.DesignTime">
<HintPath>..\packages\FSharp.Data.3.0.0\lib\net45\FSharp.Data.DesignTime.dll</HintPath>
</Reference>
</ItemGroup>