Compilar com sinalizador autônomo fornece erros de compilação no código do cliente

Estou tentando compilarZero29 com o--standalone sinalizador do compilador. O projeto em si compila bem, mas eu tenho um projeto de teste de unidade que exercita algum código no projeto Zero29, mesmo que seja um programa executável (.exe).

Tudo funciona bemsem a--standalone bandeira de compilação.

No entanto, quando adiciono o--standalone sinalizador de compilação para o projeto Zero29, o projeto Zero29 compila bem, mas no projeto de teste de unidade, o compilador reclama dessa União Discriminadadefinido no projeto 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

O projeto de teste de unidade faz referência direta ao projeto Zero29:

Zero29.UnitTests --references -> Zero29 (onde --standalone é adicionado)

Quando tento compilar a solução inteira, o projeto Zero29 compila com o--standalone flag, mas a compilação de Zero29.UnitTests falha. Existem vários erros, mas são todos iguais, então aqui está um exemplo:

erro FS0039: O valor ou construtor 'Assign' não está definido

Que aponta para a terceira linha deesse código:

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

O estranho é que enquanto o compilador reclamaAssign na terceira linha deste trecho de código,não reclamar sobre o uso deArgs.Parse, mesmo que sejadefinido no mesmo arquivo de código que oArg União Discriminada.

Por que isso acontece e como posso resolver esse problema?

(Tentei destilar o problema aqui, mas os links que forneci apontam para os arquivos de código reais no GitHub, se mais informações forem necessárias.)

questionAnswers(1)

yourAnswerToTheQuestion