未验证 提交 728f809b 编写于 作者: D dotnet bot 提交者: GitHub

Merge pull request #14354 from dotnet/merges/main-to-release/dev17.5

Merge main to release/dev17.5
......@@ -31,7 +31,7 @@
<FSCoreShippedVersion>6.0.0.0</FSCoreShippedVersion>
<!-- -->
<!-- FSharp.Compiler.Service version -->
<FCSMajorVersion>42</FCSMajorVersion>
<FCSMajorVersion>43</FCSMajorVersion>
<FCSMinorVersion>7</FCSMinorVersion>
<FCSBuildVersion>200</FCSBuildVersion>
<FCSRevisionVersion>$(FSRevisionVersion)</FCSRevisionVersion>
......
......@@ -962,10 +962,6 @@ typeInfoFromFirst,"from %s"
typeInfoFromNext,"also from %s"
typeInfoGeneratedProperty,"generated property"
typeInfoGeneratedType,"generated type"
assemblyResolutionFoundByAssemblyFoldersKey,"Found by AssemblyFolders registry key"
assemblyResolutionFoundByAssemblyFoldersExKey,"Found by AssemblyFoldersEx registry key"
assemblyResolutionNetFramework,".NET Framework"
assemblyResolutionGAC,"Global Assembly Cache"
1089,recursiveClassHierarchy,"Recursive class hierarchy in type '%s'"
1090,InvalidRecursiveReferenceToAbstractSlot,"Invalid recursive reference to an abstract slot"
1091,eventHasNonStandardType,"The event '%s' has a non-standard type. If this event is declared in another CLI language, you may need to access this event using the explicit %s and %s methods for the event. If this event is declared in F#, make the type of the event an instantiation of either 'IDelegateEvent<_>' or 'IEvent<_,_>'."
......
......@@ -461,8 +461,6 @@
<Compile Include="Interactive\fsi.fsi" />
<Compile Include="Interactive\fsi.fs" />
<!-- A legacy resolver used to help with scripting diagnostics in the Visual Studio tools -->
<Compile Include="Legacy\LegacyMSBuildReferenceResolver.fsi" Condition="'$(MonoPackaging)' != 'true'" />
<Compile Include="Legacy\LegacyMSBuildReferenceResolver.fs" Condition="'$(MonoPackaging)' != 'true'" />
<!-- an old API for testing the compiler and gathering diagnostics in-memory -->
<Compile Include="Legacy\LegacyHostedCompilerForTesting.fs" Condition="'$(MonoPackaging)' != 'true'" />
</ItemGroup>
......@@ -492,9 +490,6 @@
<PackageReference Include="System.Buffers" Version="$(SystemBuffersVersion)" />
<PackageReference Include="System.Memory" Version="$(SystemMemoryVersion)" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="$(SystemRuntimeCompilerServicesUnsafeVersion)" />
<PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildVersion)" />
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildVersion)" />
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" />
</ItemGroup>
</Project>
......@@ -6,9 +6,6 @@
<dependencies>
<group targetFramework=".NETStandard2.0">
<dependency id="FSharp.Core" version="$FSharpCorePackageVersion$" exclude="Build,Analyzers" />
<dependency id="Microsoft.Build.Framework" version="$MicrosoftBuildFrameworkPackageVersion$" exclude="Build,Analyzers" />
<dependency id="Microsoft.Build.Tasks.Core" version="$MicrosoftBuildTasksCorePackageVersion$" exclude="Build,Analyzers" />
<dependency id="Microsoft.Build.Utilities.Core" version="$MicrosoftBuildUtilitiesCorePackageVersion$" exclude="Build,Analyzers" />
<dependency id="System.Buffers" version="$SystemBuffersPackageVersion$" exclude="Build,Analyzers" />
<dependency id="System.Collections.Immutable" version="$SystemCollectionsImmutablePackageVersion$" exclude="Build,Analyzers" />
<dependency id="System.Memory" version="$SystemMemoryPackageVersion$" exclude="Build,Analyzers" />
......
......@@ -2,7 +2,7 @@
namespace FSharp.Compiler.CodeAnalysis
exception internal LegacyResolutionFailure
exception LegacyResolutionFailure
[<RequireQualifiedAccess>]
type LegacyResolutionEnvironment =
......@@ -28,7 +28,7 @@ type LegacyResolvedFile =
sprintf "LegacyResolvedFile(%s)" this.itemSpec
[<AllowNullLiteral>]
type internal ILegacyReferenceResolver =
type ILegacyReferenceResolver =
/// Get the "v4.5.1"-style moniker for the highest installed .NET Framework version.
/// This is the value passed back to Resolve if no explicit "mscorlib" has been given.
///
......
......@@ -4,17 +4,17 @@ namespace FSharp.Compiler.CodeAnalysis
open System
exception internal LegacyResolutionFailure
exception LegacyResolutionFailure
[<RequireQualifiedAccess>]
type internal LegacyResolutionEnvironment =
type LegacyResolutionEnvironment =
/// Indicates a script or source being edited or compiled. Uses reference assemblies (not implementation assemblies).
| EditingOrCompilation of isEditing: bool
/// Indicates a script or source being dynamically compiled and executed. Uses implementation assemblies.
| CompilationAndEvaluation
type internal LegacyResolvedFile =
type LegacyResolvedFile =
{
/// Item specification.
itemSpec: string
......@@ -27,7 +27,7 @@ type internal LegacyResolvedFile =
}
[<AllowNullLiteral>]
type internal ILegacyReferenceResolver =
type ILegacyReferenceResolver =
/// Get the "v4.5.1"-style moniker for the highest installed .NET Framework version.
/// This is the value passed back to Resolve if no explicit "mscorlib" has been given.
///
......@@ -59,5 +59,5 @@ type internal ILegacyReferenceResolver =
// outside FSharp.Compiler.Service
[<Class; AllowNullLiteral; Obsolete("This API is obsolete and not for external use")>]
type LegacyReferenceResolver =
internal new: impl: ILegacyReferenceResolver -> LegacyReferenceResolver
new: impl: ILegacyReferenceResolver -> LegacyReferenceResolver
member internal Impl: ILegacyReferenceResolver
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
module FSharp.Compiler.CodeAnalysis.LegacyMSBuildReferenceResolver
open System
open System.IO
open System.Reflection
open Internal.Utilities.Library
open Microsoft.Build.Tasks
open Microsoft.Build.Utilities
open Microsoft.Build.Framework
open FSharp.Compiler.IO
// Reflection wrapper for properties
type Object with
member this.GetPropertyValue(propName) =
this.GetType().GetProperty(propName, BindingFlags.Public).GetValue(this, null)
/// Get the Reference Assemblies directory for the .NET Framework on Window.
let DotNetFrameworkReferenceAssembliesRootDirectory =
// ProgramFilesX86 is correct for both x86 and x64 architectures
// (the reference assemblies are always in the 32-bit location, which is PF(x86) on an x64 machine)
let PF =
match Environment.GetEnvironmentVariable("ProgramFiles(x86)") with
| Null -> Environment.GetEnvironmentVariable("ProgramFiles") // if PFx86 is null, then we are 32-bit and just get PF
| NonNull s -> s
PF + @"\Reference Assemblies\Microsoft\Framework\.NETFramework"
/// When targeting .NET 2.0-3.5 on Windows, we expand the {WindowsFramework} and {ReferenceAssemblies} paths manually
let internal ReplaceVariablesForLegacyFxOnWindows(dirs: string list) =
let windowsFramework = Environment.GetEnvironmentVariable("windir")+ @"\Microsoft.NET\Framework"
let referenceAssemblies = DotNetFrameworkReferenceAssembliesRootDirectory
dirs |> List.map(fun d -> d.Replace("{WindowsFramework}",windowsFramework).Replace("{ReferenceAssemblies}",referenceAssemblies))
// ATTENTION!: the following code needs to be updated every time we are switching to the new MSBuild version because new .NET framework version was released
// 1. List of frameworks
// 2. DeriveTargetFrameworkDirectoriesFor45Plus
// 3. HighestInstalledRefAssembliesOrDotNETFramework
// 4. GetPathToDotNetFrameworkImlpementationAssemblies
[<Literal>]
let private Net45 = "v4.5"
[<Literal>]
let private Net451 = "v4.5.1"
[<Literal>]
let private Net452 = "v4.5.2" // not available in Dev15 MSBuild version
[<Literal>]
let private Net46 = "v4.6"
[<Literal>]
let private Net461 = "v4.6.1"
[<Literal>]
let private Net462 = "v4.6.2"
[<Literal>]
let private Net47 = "v4.7"
[<Literal>]
let private Net471 = "v4.7.1"
[<Literal>]
let private Net472 = "v4.7.2"
[<Literal>]
let private Net48 = "v4.8"
let SupportedDesktopFrameworkVersions = [ Net48; Net472; Net471; Net47; Net462; Net461; Net46; Net452; Net451; Net45 ]
/// Get the path to the .NET Framework implementation assemblies by using ToolLocationHelper.GetPathToDotNetFramework
/// This is only used to specify the "last resort" path for assembly resolution.
let GetPathToDotNetFrameworkImlpementationAssemblies v : string list =
let v =
match v with
| Net45 -> Some TargetDotNetFrameworkVersion.Version45
| Net451 -> Some TargetDotNetFrameworkVersion.Version451
| Net452 -> Some TargetDotNetFrameworkVersion.Version452
| Net46 -> Some TargetDotNetFrameworkVersion.Version46
| Net461 -> Some TargetDotNetFrameworkVersion.Version461
| Net462 -> Some TargetDotNetFrameworkVersion.Version462
| Net47 -> Some TargetDotNetFrameworkVersion.Version47
| Net471 -> Some TargetDotNetFrameworkVersion.Version471
| Net472 -> Some TargetDotNetFrameworkVersion.Version472
| Net48 -> Some TargetDotNetFrameworkVersion.Version48
| _ -> assert false; None
match v with
| Some v ->
match ToolLocationHelper.GetPathToDotNetFramework v with
| Null -> []
| NonNull x -> [x]
| _ -> []
let GetPathToDotNetFrameworkReferenceAssemblies version =
#if NETSTANDARD
ignore version
let r : string list = []
r
#else
match Microsoft.Build.Utilities.ToolLocationHelper.GetPathToStandardLibraries(".NETFramework",version,"") with
| Null | "" -> []
| NonNull x -> [x]
#endif
/// Use MSBuild to determine the version of the highest installed set of reference assemblies, failing that grab the highest installed framework version
let HighestInstalledRefAssembliesOrDotNETFramework () =
let getHighestInstalledDotNETFramework () =
try
if box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version48)) <> null then Net48
elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version472)) <> null then Net472
elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version471)) <> null then Net471
elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version47)) <> null then Net47
elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version462)) <> null then Net462
elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version461)) <> null then Net461
elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version461)) <> null then Net461
elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version46)) <> null then Net46
elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version452)) <> null then Net452
elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version451)) <> null then Net451
elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version45)) <> null then Net45
else Net45 // version is 4.5 assumed since this code is running.
with _ -> Net45
// 1. First look to see if we can find the highest installed set of dotnet reference assemblies, if yes then select that framework
// 2. Otherwise ask msbuild for the highestinstalled framework
let checkFrameworkForReferenceAssemblies (dotNetVersion:string) =
if not (String.IsNullOrEmpty(dotNetVersion)) then
try
let v = if dotNetVersion.StartsWith("v") then dotNetVersion.Substring(1) else dotNetVersion
let frameworkName = System.Runtime.Versioning.FrameworkName(".NETFramework", Version(v))
match ToolLocationHelper.GetPathToReferenceAssemblies(frameworkName) |> Seq.tryHead with
| Some p -> FileSystem.DirectoryExistsShim(p)
| None -> false
with _ -> false
else false
match SupportedDesktopFrameworkVersions |> Seq.tryFind(fun v -> checkFrameworkForReferenceAssemblies v) with
| Some v -> v
| None -> getHighestInstalledDotNETFramework()
/// Derive the target framework directories.
let DeriveTargetFrameworkDirectories (targetFrameworkVersion:string, logMessage) =
let targetFrameworkVersion =
if not(targetFrameworkVersion.StartsWith("v",StringComparison.Ordinal)) then "v"+targetFrameworkVersion
else targetFrameworkVersion
let result = GetPathToDotNetFrameworkReferenceAssemblies(targetFrameworkVersion) |> Array.ofList
logMessage (sprintf "Derived target framework directories for version %s are: %s" targetFrameworkVersion (String.Join(",", result)))
result
/// Describes the location where the reference was found, used only for debug and tooltip output
type ResolvedFrom =
| AssemblyFolders
| AssemblyFoldersEx
| TargetFrameworkDirectory
| RawFileName
| GlobalAssemblyCache
| Path of string
| Unknown
/// Decode the ResolvedFrom code from MSBuild.
let DecodeResolvedFrom(resolvedFrom:string) : ResolvedFrom =
match resolvedFrom with
| "{RawFileName}" -> RawFileName
| "{GAC}" -> GlobalAssemblyCache
| "{TargetFrameworkDirectory}" -> TargetFrameworkDirectory
| "{AssemblyFolders}" -> AssemblyFolders
| r when r.Length >= 10 && "{Registry:" = r.Substring(0,10) -> AssemblyFoldersEx
| r -> ResolvedFrom.Path r
let TooltipForResolvedFrom(resolvedFrom, fusionName, redist) =
fun (originalReference,resolvedPath) ->
let originalReferenceName = originalReference
let resolvedPath = // Don't show the resolved path if it is identical to what was referenced.
if originalReferenceName = resolvedPath then String.Empty
else resolvedPath
let lineIfExists text =
if String.IsNullOrEmpty text then ""
else text.Trim(' ')+"\n"
match resolvedFrom with
| AssemblyFolders ->
lineIfExists resolvedPath
+ lineIfExists fusionName
+ FSComp.SR.assemblyResolutionFoundByAssemblyFoldersKey()
| AssemblyFoldersEx ->
lineIfExists resolvedPath
+ lineIfExists fusionName
+ FSComp.SR.assemblyResolutionFoundByAssemblyFoldersExKey()
| TargetFrameworkDirectory ->
lineIfExists resolvedPath
+ lineIfExists fusionName
+ FSComp.SR.assemblyResolutionNetFramework()
| Unknown ->
// Unknown when resolved by plain directory search without help from MSBuild resolver.
lineIfExists resolvedPath
+ lineIfExists fusionName
| RawFileName ->
lineIfExists fusionName
| GlobalAssemblyCache ->
lineIfExists fusionName
+ lineIfExists (FSComp.SR.assemblyResolutionGAC())
+ lineIfExists redist
| Path _ ->
lineIfExists resolvedPath
+ lineIfExists fusionName
/// Perform assembly resolution by instantiating the ResolveAssembly task directly from the MSBuild SDK.
let ResolveCore(resolutionEnvironment: LegacyResolutionEnvironment,
references:(string*string)[],
targetFrameworkVersion: string,
targetFrameworkDirectories: string list,
targetProcessorArchitecture: string,
fsharpCoreDir: string,
explicitIncludeDirs: string list,
implicitIncludeDir: string,
allowRawFileName: bool,
logMessage: string -> unit,
logDiagnostic: bool -> string -> string -> unit) =
let frameworkRegistryBase, assemblyFoldersSuffix, assemblyFoldersConditions =
"Software\Microsoft\.NetFramework", "AssemblyFoldersEx" , ""
if Array.isEmpty references then [| |] else
let mutable backgroundException = false
let protect f =
if not backgroundException then
try f()
with _ -> backgroundException <- true
let engine =
{ new IBuildEngine with
member _.BuildProjectFile(projectFileName, targetNames, globalProperties, targetOutputs) = true
member _.LogCustomEvent(e) = protect (fun () -> logMessage e.Message)
member _.LogErrorEvent(e) = protect (fun () -> logDiagnostic true e.Code e.Message)
member _.LogMessageEvent(e) = protect (fun () -> logMessage e.Message)
member _.LogWarningEvent(e) = protect (fun () -> logDiagnostic false e.Code e.Message)
member _.ColumnNumberOfTaskNode with get() = 1
member _.LineNumberOfTaskNode with get() = 1
member _.ContinueOnError with get() = true
member _.ProjectFileOfTaskNode with get() = "" }
// Derive the target framework directory if none was supplied.
let targetFrameworkDirectories =
if targetFrameworkDirectories=[] then DeriveTargetFrameworkDirectories(targetFrameworkVersion, logMessage)
else targetFrameworkDirectories |> Array.ofList
// Filter for null and zero length
let references = references |> Array.filter(fst >> String.IsNullOrEmpty >> not)
// Determine the set of search paths for the resolution
let searchPaths =
let explicitIncludeDirs = explicitIncludeDirs |> List.filter(String.IsNullOrEmpty >> not)
let registry = sprintf "{Registry:%s,%s,%s%s}" frameworkRegistryBase targetFrameworkVersion assemblyFoldersSuffix assemblyFoldersConditions
[| // When compiling scripts using fsc.exe, for some reason we have always historically put TargetFrameworkDirectory first
// It is unclear why. This is the only place we look at the 'isdifference between ResolutionEnvironment.EditingOrCompilation and ResolutionEnvironment.EditingTime.
match resolutionEnvironment with
| LegacyResolutionEnvironment.EditingOrCompilation false -> yield "{TargetFrameworkDirectory}"
| LegacyResolutionEnvironment.EditingOrCompilation true
| LegacyResolutionEnvironment.CompilationAndEvaluation -> ()
// Quick-resolve straight to file name first
if allowRawFileName then
yield "{RawFileName}"
yield! explicitIncludeDirs // From -I, #I
yield fsharpCoreDir // Location of explicit reference to FSharp.Core, otherwise location of fsc.exe
yield implicitIncludeDir // Usually the project directory
match resolutionEnvironment with
| LegacyResolutionEnvironment.EditingOrCompilation true
| LegacyResolutionEnvironment.CompilationAndEvaluation -> yield "{TargetFrameworkDirectory}"
| LegacyResolutionEnvironment.EditingOrCompilation false -> ()
yield registry
yield "{AssemblyFolders}"
yield "{GAC}"
// use path to implementation assemblies as the last resort
yield! GetPathToDotNetFrameworkImlpementationAssemblies targetFrameworkVersion
|]
let assemblies =
[| for referenceName,baggage in references ->
let item = TaskItem(referenceName) :> ITaskItem
item.SetMetadata("Baggage", baggage)
item |]
let rar =
ResolveAssemblyReference(BuildEngine=engine, TargetFrameworkDirectories=targetFrameworkDirectories,
FindRelatedFiles=false, FindDependencies=false, FindSatellites=false,
FindSerializationAssemblies=false, Assemblies=assemblies,
SearchPaths=searchPaths,
AllowedAssemblyExtensions= [| ".dll" ; ".exe" |])
rar.TargetProcessorArchitecture <- targetProcessorArchitecture
let targetedRuntimeVersionValue = typeof<obj>.Assembly.ImageRuntimeVersion
rar.TargetedRuntimeVersion <- targetedRuntimeVersionValue
rar.CopyLocalDependenciesWhenParentReferenceInGac <- true
let succeeded = rar.Execute()
if not succeeded then
raise LegacyResolutionFailure
let resolvedFiles =
[| for p in rar.ResolvedFiles ->
let resolvedFrom = DecodeResolvedFrom(p.GetMetadata("ResolvedFrom"))
let fusionName = p.GetMetadata("FusionName")
let redist = p.GetMetadata("Redist")
{ itemSpec = p.ItemSpec
prepareToolTip = TooltipForResolvedFrom(resolvedFrom, fusionName, redist)
baggage = p.GetMetadata("Baggage") } |]
resolvedFiles
let getResolver () =
{ new ILegacyReferenceResolver with
member _.HighestInstalledNetFrameworkVersion() = HighestInstalledRefAssembliesOrDotNETFramework()
member _.DotNetFrameworkReferenceAssembliesRootDirectory = DotNetFrameworkReferenceAssembliesRootDirectory
/// Perform the resolution on rooted and unrooted paths, and then combine the results.
member _.Resolve(resolutionEnvironment, references, targetFrameworkVersion, targetFrameworkDirectories, targetProcessorArchitecture,
fsharpCoreDir, explicitIncludeDirs, implicitIncludeDir, logMessage, logDiagnostic) =
// The {RawFileName} target is 'dangerous', in the sense that is uses <c>Directory.GetCurrentDirectory()</c> to resolve unrooted file paths.
// It is unreliable to use this mutable global state inside Visual Studio. As a result, we partition all references into a "rooted" set
// (which contains e.g. C:\MyDir\MyAssem.dll) and "unrooted" (everything else). We only allow "rooted" to use {RawFileName}. Note that
// unrooted may still find 'local' assemblies by virtue of the fact that "implicitIncludeDir" is one of the places searched during
// assembly resolution.
let references =
[| for fileName, baggage as data in references ->
// However, MSBuild will not resolve 'relative' paths, even when e.g. implicitIncludeDir is part of the search. As a result,
// if we have an unrooted path + file name, we'll assume this is relative to the project directory and root it.
if FileSystem.IsPathRootedShim(fileName) then
data // fine, e.g. "C:\Dir\foo.dll"
elif not(fileName.Contains("\\") || fileName.Contains("/")) then
data // fine, e.g. "System.Transactions.dll"
else
// We have a 'relative path', e.g. "bin/Debug/foo.exe" or "..\Yadda\bar.dll"
// turn it into an absolute path based at implicitIncludeDir
(Path.Combine(implicitIncludeDir, fileName), baggage) |]
let rooted, unrooted = references |> Array.partition (fst >> FileSystem.IsPathRootedShim)
let rootedResults =
ResolveCore
(resolutionEnvironment, rooted, targetFrameworkVersion,
targetFrameworkDirectories, targetProcessorArchitecture,
fsharpCoreDir, explicitIncludeDirs, implicitIncludeDir,
true, logMessage, logDiagnostic)
let unrootedResults =
ResolveCore
(resolutionEnvironment, unrooted, targetFrameworkVersion,
targetFrameworkDirectories, targetProcessorArchitecture,
fsharpCoreDir, explicitIncludeDirs, implicitIncludeDir,
false, logMessage, logDiagnostic)
// now unify the two sets of results
Array.concat [| rootedResults; unrootedResults |]
}
|> LegacyReferenceResolver
......@@ -5662,26 +5662,6 @@
<target state="translated">generovaný typ</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">Nalezené klíčem registru AssemblyFolders</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">Nalezené klíčem registru AssemblyFoldersEx</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">Globální mezipaměť sestavení</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">Rekurzivní hierarchie tříd u typu {0}</target>
......
......@@ -5662,26 +5662,6 @@
<target state="translated">Generierter Typ</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">Von AssemblyFolders-Registrierungsschlüssel gefunden</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">Von AssemblyFoldersEx-Registrierungsschlüssel gefunden</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">Globaler Assemblycache</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">Rekursive Klassenhierarchie in Typ "{0}".</target>
......
......@@ -5662,26 +5662,6 @@
<target state="translated">tipo generado</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">Encontrado por la clave del Registro AssemblyFolders.</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">Encontrado por la clave del Registro AssemblyFoldersEx.</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">Caché global de ensamblados</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">Jerarquía de clases recursiva en el tipo '{0}'.</target>
......
......@@ -5662,26 +5662,6 @@
<target state="translated">type généré</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">Trouvée par la clé de Registre AssemblyFolders</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">Trouvée par la clé de Registre AssemblyFoldersEx</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">Hiérarchie de classes récursive dans le type '{0}'</target>
......
......@@ -5662,26 +5662,6 @@
<target state="translated">tipo generato</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">Trovata mediante la chiave del Registro di sistema AssemblyFolders</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">Trovata mediante chiave del Registro di sistema AssemblyFoldersEx</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">Gerarchia di classi ricorsiva nel tipo '{0}'</target>
......
......@@ -5662,26 +5662,6 @@
<target state="translated">生成された型</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">AssemblyFolders レジストリ キーによって検出されました</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">AssemblyFoldersEx レジストリ キーによって検出されました</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">グローバル アセンブリ キャッシュ</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">型 '{0}' の再帰的クラス階層</target>
......
......@@ -5662,26 +5662,6 @@
<target state="translated">생성된 형식</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">AssemblyFolders 레지스트리 키로 찾았습니다.</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">AssemblyFoldersEx 레지스트리 키로 찾았습니다.</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">전역 어셈블리 캐시</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">'{0}' 형식에 재귀적 클래스 계층 구조가 있습니다.</target>
......
......@@ -5662,26 +5662,6 @@
<target state="translated">wygenerowany typ</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">Znalezione przez klucz rejestru AssemblyFolders</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">Znalezione przez klucz rejestru AssemblyFoldersEx</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">Globalna pamięć podręczna zestawów</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">Cykliczna hierarchia klas w typie „{0}”</target>
......
......@@ -5662,26 +5662,6 @@
<target state="translated">tipo gerado</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">Localizada pela chave de registro AssemblyFolders</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">Localizada pela chave de registro AssemblyFoldersEx</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">Cache de Assembly Global</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">Hierarquia de classe recursiva no tipo '{0}'</target>
......
......@@ -5662,26 +5662,6 @@
<target state="translated">созданный тип</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">Найдено по разделу реестра AssemblyFolders</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">Найдено по разделу реестра AssemblyFoldersEx</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">Глобальный кэш сборок</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">Рекурсивная иерархия классов в типе "{0}"</target>
......
......@@ -5662,26 +5662,6 @@
<target state="translated">oluşturulan tür</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">AssemblyFolders kayıt defteri anahtarı ile bulunur</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">AssemblyFoldersEx kayıt defteri anahtarı ile bulunur</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">Genel Bütünleştirilmiş Kod Önbelleği</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">'{0}' türünde özyinelemeli sınıf hiyerarşisi</target>
......
......@@ -5662,26 +5662,6 @@
<target state="translated">生成的类型</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">已由 AssemblyFolders 注册表项找到</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">已由 AssemblyFoldersEx 注册表项找到</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">全局程序集缓存</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">类型“{0}”中的递归类层次结构</target>
......
......@@ -5662,26 +5662,6 @@
<target state="translated">產生的類型</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="translated">依 AssemblyFolders 登錄機碼找到</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="translated">依 AssemblyFoldersEx 登錄機碼找到</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="translated">.NET Framework</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="translated">全域組件快取</target>
<note />
</trans-unit>
<trans-unit id="recursiveClassHierarchy">
<source>Recursive class hierarchy in type '{0}'</source>
<target state="translated">類型 '{0}' 中有遞迴的類別階層</target>
......
......@@ -64,7 +64,6 @@ module internal Utilities =
|> Array.filter (fun r ->
not (String.IsNullOrEmpty(r.NugetPackageId) || String.IsNullOrEmpty(r.FullPath))
&& not (equals r.IsNotImplementationReference "true")
&& File.Exists(r.FullPath)
&& equals r.AssetType "runtime")
|> Array.map (fun r -> r.FullPath)
|> Array.distinct
......@@ -260,7 +259,12 @@ module internal Utilities =
let resolutionsFile, resolutions, references, loads, includes =
if success && File.Exists(outputFile) then
let resolutions = getResolutionsFromFile outputFile
let references = (findReferencesFromResolutions resolutions) |> Array.toList
let references =
(findReferencesFromResolutions resolutions)
|> Array.filter (File.Exists)
|> Array.toList
let loads = (findLoadsFromResolutions resolutions) |> Array.toList
let includes = (findIncludesFromResolutions resolutions) |> Array.toList
(Some outputFile), resolutions, references, loads, includes
......
# -------------------------------------------------------------------------------
# use a completely new error number and keep messages in their surrounding groups
# -------------------------------------------------------------------------------
assemblyResolutionFoundByAssemblyFoldersKey,"Found by AssemblyFolders registry key"
assemblyResolutionFoundByAssemblyFoldersExKey,"Found by AssemblyFoldersEx registry key"
assemblyResolutionNetFramework,".NET Framework"
assemblyResolutionGAC,"Global Assembly Cache"
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="cs" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="de" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="es" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="fr" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="it" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="ja" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="ko" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="pl" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="pt-BR" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="ru" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="tr" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="zh-Hans" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="zh-Hant" original="../LegacyResolver.resx">
<body>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersExKey">
<source>Found by AssemblyFoldersEx registry key</source>
<target state="new">Found by AssemblyFoldersEx registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionFoundByAssemblyFoldersKey">
<source>Found by AssemblyFolders registry key</source>
<target state="new">Found by AssemblyFolders registry key</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionGAC">
<source>Global Assembly Cache</source>
<target state="new">Global Assembly Cache</target>
<note />
</trans-unit>
<trans-unit id="assemblyResolutionNetFramework">
<source>.NET Framework</source>
<target state="new">.NET Framework</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -28,6 +28,11 @@
</PropertyGroup>
<ItemGroup>
<EmbeddedText Include="$(MSBuildThisFileDirectory)..\LegacyMSBuildResolver\LegacyResolver.txt">
<Link>LegacyResolver.txt</Link>
</EmbeddedText>
<Compile Include="$(MSBuildThisFileDirectory)..\LegacyMSBuildResolver\LegacyMSBuildReferenceResolver.fsi" />
<Compile Include="$(MSBuildThisFileDirectory)..\LegacyMSBuildResolver\LegacyMSBuildReferenceResolver.fs" />
<Compile Include="$(MSBuildThisFileDirectory)fscmain.fs" />
<NoneSubstituteText Include="$(MSBuildThisFileDirectory)App.config">
<Pattern1>{{FSCoreVersion}}</Pattern1>
......@@ -46,6 +51,9 @@
<PackageReference Include="System.Memory" Version="$(SystemMemoryVersion)" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="$(SystemRuntimeCompilerServicesUnsafeVersion)" />
<PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
<PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildVersion)" />
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildVersion)" />
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" />
</ItemGroup>
</Project>
......@@ -32,6 +32,11 @@
</PropertyGroup>
<ItemGroup>
<EmbeddedText Include="$(MSBuildThisFileDirectory)..\LegacyMSBuildResolver\LegacyResolver.txt">
<Link>LegacyResolver.txt</Link>
</EmbeddedText>
<Compile Include="$(MSBuildThisFileDirectory)..\LegacyMSBuildResolver\LegacyMSBuildReferenceResolver.fsi" />
<Compile Include="$(MSBuildThisFileDirectory)..\LegacyMSBuildResolver\LegacyMSBuildReferenceResolver.fs" />
<Compile Include="$(MSBuildThisFileDirectory)console.fs" />
<Compile Include="$(MSBuildThisFileDirectory)fsimain.fs" />
<NoneSubstituteText Include="$(MSBuildThisFileDirectory)App.config">
......@@ -54,4 +59,10 @@
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildVersion)" />
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildVersion)" />
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" />
</ItemGroup>
</Project>
\ No newline at end of file
......@@ -2191,9 +2191,54 @@ FSharp.Compiler.CodeAnalysis.FSharpUnresolvedReferencesSet: Boolean Equals(Syste
FSharp.Compiler.CodeAnalysis.FSharpUnresolvedReferencesSet: Int32 GetHashCode()
FSharp.Compiler.CodeAnalysis.FSharpUnresolvedReferencesSet: Int32 GetHashCode(System.Collections.IEqualityComparer)
FSharp.Compiler.CodeAnalysis.FSharpUnresolvedReferencesSet: System.String ToString()
FSharp.Compiler.CodeAnalysis.LegacyMSBuildReferenceResolver
FSharp.Compiler.CodeAnalysis.LegacyMSBuildReferenceResolver: FSharp.Compiler.CodeAnalysis.LegacyReferenceResolver getResolver()
FSharp.Compiler.CodeAnalysis.ILegacyReferenceResolver
FSharp.Compiler.CodeAnalysis.ILegacyReferenceResolver: FSharp.Compiler.CodeAnalysis.LegacyResolvedFile[] Resolve(FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment, System.Tuple`2[System.String,System.String][], System.String, Microsoft.FSharp.Collections.FSharpList`1[System.String], System.String, System.String, Microsoft.FSharp.Collections.FSharpList`1[System.String], System.String, Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.Unit], Microsoft.FSharp.Core.FSharpFunc`2[System.Boolean,Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.Unit]]])
FSharp.Compiler.CodeAnalysis.ILegacyReferenceResolver: System.String DotNetFrameworkReferenceAssembliesRootDirectory
FSharp.Compiler.CodeAnalysis.ILegacyReferenceResolver: System.String HighestInstalledNetFrameworkVersion()
FSharp.Compiler.CodeAnalysis.ILegacyReferenceResolver: System.String get_DotNetFrameworkReferenceAssembliesRootDirectory()
FSharp.Compiler.CodeAnalysis.LegacyReferenceResolver
FSharp.Compiler.CodeAnalysis.LegacyReferenceResolver: Void .ctor(FSharp.Compiler.CodeAnalysis.ILegacyReferenceResolver)
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment+EditingOrCompilation: Boolean get_isEditing()
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment+EditingOrCompilation: Boolean isEditing
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment+Tags: Int32 CompilationAndEvaluation
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment+Tags: Int32 EditingOrCompilation
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Boolean Equals(FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment)
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Boolean Equals(System.Object)
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Boolean Equals(System.Object, System.Collections.IEqualityComparer)
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Boolean IsCompilationAndEvaluation
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Boolean IsEditingOrCompilation
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Boolean get_IsCompilationAndEvaluation()
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Boolean get_IsEditingOrCompilation()
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment CompilationAndEvaluation
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment NewEditingOrCompilation(Boolean)
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment get_CompilationAndEvaluation()
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment+EditingOrCompilation
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment+Tags
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Int32 CompareTo(FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment)
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Int32 CompareTo(System.Object)
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Int32 CompareTo(System.Object, System.Collections.IComparer)
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Int32 GetHashCode()
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Int32 GetHashCode(System.Collections.IEqualityComparer)
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Int32 Tag
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: Int32 get_Tag()
FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment: System.String ToString()
FSharp.Compiler.CodeAnalysis.LegacyResolutionFailure
FSharp.Compiler.CodeAnalysis.LegacyResolutionFailure: Boolean Equals(System.Object)
FSharp.Compiler.CodeAnalysis.LegacyResolutionFailure: Boolean Equals(System.Object, System.Collections.IEqualityComparer)
FSharp.Compiler.CodeAnalysis.LegacyResolutionFailure: Int32 GetHashCode()
FSharp.Compiler.CodeAnalysis.LegacyResolutionFailure: Int32 GetHashCode(System.Collections.IEqualityComparer)
FSharp.Compiler.CodeAnalysis.LegacyResolutionFailure: System.String get_Message()
FSharp.Compiler.CodeAnalysis.LegacyResolutionFailure: Void .ctor()
FSharp.Compiler.CodeAnalysis.LegacyResolvedFile
FSharp.Compiler.CodeAnalysis.LegacyResolvedFile: Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.String],System.String] get_prepareToolTip()
FSharp.Compiler.CodeAnalysis.LegacyResolvedFile: Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.String],System.String] prepareToolTip
FSharp.Compiler.CodeAnalysis.LegacyResolvedFile: System.String ToString()
FSharp.Compiler.CodeAnalysis.LegacyResolvedFile: System.String baggage
FSharp.Compiler.CodeAnalysis.LegacyResolvedFile: System.String get_baggage()
FSharp.Compiler.CodeAnalysis.LegacyResolvedFile: System.String get_itemSpec()
FSharp.Compiler.CodeAnalysis.LegacyResolvedFile: System.String itemSpec
FSharp.Compiler.CodeAnalysis.LegacyResolvedFile: Void .ctor(System.String, Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.String],System.String], System.String)
FSharp.Compiler.CompilerEnvironment
FSharp.Compiler.CompilerEnvironment: Boolean IsCheckerSupportedSubcategory(System.String)
FSharp.Compiler.CompilerEnvironment: Boolean IsCompilable(System.String)
......@@ -15,6 +15,11 @@
</PropertyGroup>
<ItemGroup>
<EmbeddedText Include="$(MSBuildThisFileDirectory)..\..\..\..\..\src\LegacyMSBuildResolver\LegacyResolver.txt">
<Link>LegacyResolver.txt</Link>
</EmbeddedText>
<Compile Include="$(MSBuildThisFileDirectory)..\..\..\..\..\src\LegacyMSBuildResolver\LegacyMSBuildReferenceResolver.fsi" />
<Compile Include="$(MSBuildThisFileDirectory)..\..\..\..\..\src\LegacyMSBuildResolver\LegacyMSBuildReferenceResolver.fs" />
<Compile Include="Program.fs" />
<None Include="App.config" />
</ItemGroup>
......@@ -24,4 +29,10 @@
<ProjectReference Include="$(FSharpSourcesRoot)\Compiler\FSharp.Compiler.Service.fsproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildVersion)" />
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildVersion)" />
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" />
</ItemGroup>
</Project>
......@@ -22,6 +22,11 @@
<GenerateSource>true</GenerateSource>
<GeneratedModuleName>Microsoft.VisualStudio.FSharp.Editor.SR</GeneratedModuleName>
</EmbeddedResource>
<EmbeddedText Include="$(MSBuildThisFileDirectory)..\..\..\src\LegacyMSBuildResolver\LegacyResolver.txt">
<Link>LegacyResolver.txt</Link>
</EmbeddedText>
<Compile Include="$(MSBuildThisFileDirectory)..\..\..\src\LegacyMSBuildResolver\LegacyMSBuildReferenceResolver.fsi" />
<Compile Include="$(MSBuildThisFileDirectory)..\..\..\src\LegacyMSBuildResolver\LegacyMSBuildReferenceResolver.fs" />
<Compile Include="Common\AssemblyInfo.fs" />
<Compile Include="Common\Logger.fsi" />
<Compile Include="Common\Logger.fs" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册