多くの実験的な作業と、インターネットや F# の書籍で驚くほど少ない情報を調べた結果、次のことがわかりました。
// Cannot use a relative path
//#I @"bin\Debug"
// Have to use a absolute path
#I @"C:\Development\FSharpNameSpaceTest\SomeCSharpLib\bin\Debug"
// But I can reference a Csharp dll lib
#r "SomeCSharpLib.dll"
// I cannot add a reference to an external F# library dll
// #I @"C:\Development\FSharpNameSpaceTest\NameSpace\bin\Debug"
// #r "NameSpace.dll"
// If I directly load the external fs file, it works"
#load @"C:\Development\FSharpNameSpaceTest\NameSpace\SomeNameSpace.fs"
#load "Library1.fs"
// Namespaces in both the local and the external fs files can only be openend if every single file is loaded instead of referencing the dll.
// Referencing a C# dll is no problem
open FSharpNameSpaceTest
open SomeCSharpLib
open NameSpace
これが最適なアプローチかどうかはわかりませんが、うまくいきます。私がすることは、そのプロジェクトの個々の fs ファイルをロードするすべてのプロジェクトに対して fsx ファイルを作成し、そのプロジェクトを参照する fsx ファイルにその fsx ファイルをロードすることです。
私は今でも、これはすべて非常に紛らわしく、直感に反していると思います。しかし、それはF#の内部構造に関する私の限られた知識かもしれません
編集:正しい完全な答えは、デフォルトのコンストラクターを実装していないことです。それでも、これをしたくない場合は、上記のアプローチが代替手段です。マーク・シグリットに感謝します。