Szybkie-n-brudny sposób, aby zobaczyć delty w powierzchni publicznego jest szopka kod z FSharp.Core public surface area unit tests :-)
Utwórz aplikację konsoli z poniżej kodu i odbudować/powtórkę w stosunku do każdej wersji, którą jesteś zainteresowany. Zrzuci wszystkie publiczne interfejsy API w tej wersji. Możesz użyć windiff lub swojego ulubionego narzędzia do porównywania interfejsów API między wersjami.
open System.Reflection
let file = typeof<int list>.Assembly.Location
let asm = Assembly.ReflectionOnlyLoadFrom(file)
let referenced = asm.GetReferencedAssemblies()
for ref in referenced do
Assembly.ReflectionOnlyLoad(ref.FullName) |> ignore
let types = asm.GetExportedTypes()
let values =
types
|> Array.collect (fun t -> t.GetMembers())
|> Array.map (fun v -> sprintf "%s: %s" (v.ReflectedType.ToString()) (v.ToString()))
|> Array.sort
|> String.concat "\r\n"
// dump to a file or print to console
printfn "%s" values
Dzięki Tomas. A może 3,1 vs 3,0? –
@CameronTaggart: Znacząco ** duże usprawnienia wydajności funkcji wewnątrz modułu 'Printf'. Możesz znaleźć szczegółowe informacje o wszystkich zmianach między różnymi wersjami na blogu [F # Team] (http://blogs.msdn.com/b/fsharpteam/) (znajdziesz inny post dla każdej wersji, jeśli trochę przewiniesz) . – ildjarn
@ildjarn Rozumiem, że w środowisku uruchomieniowym występują ulepszenia wydajności podczas korzystania z nowszych wersji. Moje pytanie dotyczy naprawdę * kierowania * konkretnej wersji w czasie projektowania. Byłoby wspaniale, gdyby lista mogła być generowana z różnicami w formacie metadanych używanym przez narzędzie Visual F # Power Tools. –