Компиляция с автономным флагом дает ошибки компиляции в клиентском коде

Я пытаюсь скомпилироватьZero29 с--standalone флаг компилятора. Сам проект компилируется нормально, но у меня есть проект модульного теста, который выполняет некоторый код в проекте Zero29, даже если это исполняемая программа (.exe).

Все отлично работаетбез --standalone флаг компиляции.

Тем не менее, когда я добавляю--standalone флаг компиляции для проекта Zero29, проект Zero29 компилируется нормально, но в проекте модульного тестирования компилятор жалуется на этот дискриминированный союзопределено в проекте Zero29:

namespace Ploeh.ZeroToNine

open System
open Ploeh.ZeroToNine.Versioning

type Arg =
    | Assign of Version
    | AssignRank of Rank * int
    | Increment of Rank
    | ListVersions
    | ShowHelp
    | Unknown of string list

Проект модульного тестирования напрямую ссылается на проект Zero29:

Zero29.UnitTests --references -> Zero29 (где добавлен --standalone)

Когда я пытаюсь скомпилировать все решение, проект Zero29 компилируется с--standalone флаг, но тогда компиляция Zero29.UnitTests не удалась. Есть несколько ошибок, но они все одинаковы, поэтому вот один пример:

ошибка FS0039: значение или конструктор Assign не определены

Который указывает на третью строкуэтот код:

let ParseAssignVersionReturnsCorrectResult(version : string) =
    let actual = [| "-a"; version |] |> Args.Parse
    verify <@ [Assign(Version version)] = (actual |> Seq.toList) @>

Странно то, что пока компилятор жалуется наAssign в третьей строке этого фрагмента кода, этоне пожаловаться на использованиеArgs.Parseхотя этоопределяется в том же файле кода, что иArg Дискриминационный Союз.

Почему это происходит, и как я могу решить эту проблему?

(Я попытался разобраться в проблеме здесь, но предоставленные мной ссылки указывают на фактические файлы кода на GitHub, если требуется дополнительная информация.)

Ответы на вопрос(1)

Ваш ответ на вопрос