Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .vsts-signed.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ variables:
- name: VisualStudioDropName
value: Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)

# Variables defined in yml cannot be overridden at queue time; instead overridable variables must be defined in the web UI.
# Commenting out until something like this is supported: https://github.com/Microsoft/azure-pipelines-yaml/pull/129
#variables:
#- name: SkipTests
# defaultValue: false

jobs:
- job: Full_Signed
pool:
Expand All @@ -26,6 +32,7 @@ jobs:
- script: eng\CIBuild.cmd
-configuration $(BuildConfiguration)
-testAll
-officialSkipTests $(SkipTests)
/p:OfficialBuildId=$(BUILD.BUILDNUMBER)
/p:VisualStudioDropName=$(VisualStudioDropName)
/p:DotNetSignType=$(SignType)
Expand Down Expand Up @@ -55,7 +62,7 @@ jobs:
ArtifactName: 'Test Results'
publishLocation: Container
continueOnError: true
condition: succeededOrFailed()
condition: and(succeededOrFailed(), ne(variables['SkipTests'], 'true'))

# Upload VSTS Drop
- task: ms-vseng.MicroBuildTasks.4305a8de-ba66-4d8b-b2d1-0dc4ecbbf5e8.MicroBuildUploadVstsDropFolder@1
Expand Down
54 changes: 45 additions & 9 deletions FSharpBuild.Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,59 @@
<Import Project="eng\targets\NGenBinaries.targets" />
<Import Project="FSharp.Profiles.props" />

<PropertyGroup>
<CompileDependsOn>$(CompileDependsOn);CopyAndSubstituteTextFiles</CompileDependsOn>
</PropertyGroup>

<Target Name="CopyAndSubstituteTextFiles"
Inputs="@(CopyAndSubstituteText)"
Outputs="@(CopyAndSubstituteText->'$(OutDir)%(TargetFilename)')">
Outputs="@(CopyAndSubstituteText->'$(IntermediateOutputPath)%(Filename)%(Extension)')"
BeforeTargets="BeforeBuild">

<PropertyGroup>
<__TargetFilePath>@(CopyAndSubstituteText->'$(IntermediateOutputPath)%(Filename)%(Extension)')</__TargetFilePath>
<__TargetFileName>@(CopyAndSubstituteText->'%(Filename)%(Extension)')</__TargetFileName>

<_ReplacementText>$([System.IO.File]::ReadAllText('%(CopyAndSubstituteText.FullPath)'))</_ReplacementText>
<_ReplacementText Condition="'%(CopyAndSubstituteText.Pattern1)' != ''">$(_ReplacementText.Replace('%(CopyAndSubstituteText.Pattern1)', '%(CopyAndSubstituteText.Replacement1)'))</_ReplacementText>
<_ReplacementText Condition="'%(CopyAndSubstituteText.Pattern2)' != ''">$(_ReplacementText.Replace('%(CopyAndSubstituteText.Pattern2)', '%(CopyAndSubstituteText.Replacement2)'))</_ReplacementText>
</PropertyGroup>
<WriteLinesToFile File="$(OutDir)%(CopyAndSubstituteText.TargetFilename)" Lines="$(_ReplacementText)" Overwrite="true" />

<MakeDir
Directories="$(IntermediateOutputPath)"
Condition="!Exists('$(IntermediateOutputPath)')" />
<WriteLinesToFile File="$(__TargetFilePath)" Lines="$(_ReplacementText)" Overwrite="true" />

<!-- Make sure it will get cleaned -->
<ItemGroup >
<None Include="$(__TargetFilePath)" Condition="'$(__TargetFileName)' == 'App.config'" CopyToOutputDirectory="Never" />
<None Include="$(__TargetFilePath)" Condition="'$(__TargetFileName)' != 'App.config'" CopyToOutputDirectory="PreserveNewest" />
<FileWrites Include="$(__TargetFilePath)" Condition="'$(__TargetFileName)' != 'App.config'" />
</ItemGroup>
</Target>

<Target Name="_GenerateBuildPropertiesFile"
Outputs="$(IntermediateOutputPath)buildproperties.fs"
BeforeTargets="BeforeBuild"
Condition="'$(Language)'=='F#'">

<ItemGroup>
<_BuildPropertyLines Remove="@(_BuildPropertyLines)" />
<_BuildPropertyLines Include="// &lt;auto-generated &gt;" />
<_BuildPropertyLines Include="// &lt;Generated by the FSharp WriteCodeFragment class./&gt;" />
<_BuildPropertyLines Include="// &lt;/auto-generated/&gt;" />
<_BuildPropertyLines Include="//" />
<_BuildPropertyLines Include="module internal FSharp.BuildProperties" />
<_BuildPropertyLines Include="let fsProductVersion = &quot;$(FSPRODUCTVERSION)&quot;" />
<_BuildPropertyLines Include="let fsLanguageVersion = &quot;$(FSLANGUAGEVERSION)&quot;" />
</ItemGroup>

<MakeDir
Directories="$(IntermediateOutputPath)"
Condition="!Exists('$(IntermediateOutputPath)')" />
<WriteLinesToFile File="$(IntermediateOutputPath)buildproperties.fs" Lines="@(_BuildPropertyLines)" Overwrite="true" />

<!-- Make sure it will get cleaned -->
<CreateItem Include="$(OutDir)%(CopyAndSubstituteText.TargetFilename)">
<Output TaskParameter="Include" ItemName="FileWrites" />
</CreateItem>
<ItemGroup>
<FileWrites Include="$(IntermediateOutputPath)buildproperties.fs" />
<CompileBefore Include="$(IntermediateOutputPath)buildproperties.fs" />
</ItemGroup>
</Target>

</Project>
29 changes: 29 additions & 0 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@
trigger:
- master
- dev16.1
- fsharp47
- fsharp5
- release/*
pr:
- master
- dev16.1
- fsharp47
- fsharp5
- release/*

variables:
Expand All @@ -20,6 +24,12 @@ variables:
- name: VisualStudioDropName
value: Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)

# Variables defined in yml cannot be overridden at queue time; instead overridable variables must be defined in the web UI.
# Commenting out until something like this is supported: https://github.com/Microsoft/azure-pipelines-yaml/pull/129
#variables:
#- name: SkipTests
# defaultValue: false

jobs:

#---------------------------------------------------------------------------------------------------------------------#
Expand Down Expand Up @@ -55,6 +65,7 @@ jobs:
-configuration $(_BuildConfig)
-prepareMachine
-testAll
-officialSkipTests $(SkipTests)
/p:SignType=$(_SignType)
/p:DotNetSignType=$(_SignType)
/p:MicroBuild_SigningEnabled=true
Expand All @@ -70,6 +81,24 @@ jobs:
/p:OfficialBuildId=$(BUILD.BUILDNUMBER)
/p:PublishToSymbolServer=true
/p:VisualStudioDropName=$(VisualStudioDropName)
- task: PublishBuildArtifacts@1
displayName: Publish Artifact Packages
inputs:
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\packages\$(_BuildConfig)'
ArtifactName: 'Packages'
condition: succeeded()
- task: PublishBuildArtifacts@1
displayName: Publish Artifact VSSetup
inputs:
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(_BuildConfig)\Insertion'
ArtifactName: 'VSSetup'
condition: succeeded()
- task: PublishBuildArtifacts@1
displayName: Publish Artifact Nightly
inputs:
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(_BuildConfig)\VisualFSharpFull.vsix'
ArtifactName: 'Nightly'
condition: succeeded()

#---------------------------------------------------------------------------------------------------------------------#
# PR builds #
Expand Down
13 changes: 13 additions & 0 deletions eng/Build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ param (
[switch]$testFSharpQA,
[switch]$testVs,
[switch]$testAll,
[string]$officialSkipTests = "false",

[parameter(ValueFromRemainingArguments=$true)][string[]]$properties)

Expand Down Expand Up @@ -84,6 +85,7 @@ function Print-Usage() {
Write-Host " -testFSharpCore Run FSharpCore unit tests"
Write-Host " -testFSharpQA Run F# Cambridge tests"
Write-Host " -testVs Run F# editor unit tests"
Write-Host " -officialSkipTests <bool> Set to 'true' to skip running tests"
Write-Host ""
Write-Host "Advanced settings:"
Write-Host " -ci Set when running on CI server"
Expand Down Expand Up @@ -112,6 +114,17 @@ function Process-Arguments() {
$script:testVs = $True
}

if ([System.Boolean]::Parse($script:officialSkipTests)) {
$script:testAll = $False
$script:testCambridge = $False
$script:testCompiler = $False
$script:testDesktop = $False
$script:testCoreClr = $False
$script:testFSharpCore = $False
$script:testFSharpQA = $False
$script:testVs = $False
}

if ($noRestore) {
$script:restore = $False;
}
Expand Down
9 changes: 7 additions & 2 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,15 @@
<!-- Version number computation -->
<PropertyGroup>
<PreReleaseVersionLabel>beta</PreReleaseVersionLabel>
<FSCoreMajorVersion>4.6</FSCoreMajorVersion>
<FSLanguageVersion>4.6</FSLanguageVersion>
<FSCoreMajorVersion>$(FSLanguageVersion)</FSCoreMajorVersion>
<FSCorePackageVersion>$(FSCoreMajorVersion).3</FSCorePackageVersion>
<FSCoreVersionPrefix>$(FSCoreMajorVersion).0</FSCoreVersionPrefix>
<FSCoreVersion>$(FSCoreVersionPrefix).0</FSCoreVersion>
<!-- The current published nuget package -->
<FSharpCoreShippedPackageVersion>4.6.2</FSharpCoreShippedPackageVersion>
<!-- The pattern for specifying the preview package -->
<FSharpCorePreviewPackageVersion>$(FSCorePackageVersion)-$(PreReleaseVersionLabel).*</FSharpCorePreviewPackageVersion>
</PropertyGroup>
<PropertyGroup>
<FSPackageMajorVersion>10.4</FSPackageMajorVersion>
Expand Down Expand Up @@ -184,4 +189,4 @@
<RoslynToolsSignToolVersion>1.0.0-beta2-dev3</RoslynToolsSignToolVersion>
<StrawberryPerl64Version>5.22.2.1</StrawberryPerl64Version>
</PropertyGroup>
</Project>
</Project>
57 changes: 56 additions & 1 deletion fcs/Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -1,3 +1,58 @@
<Project>
<!-- empty to prevent directory crawling -->

<Target Name="CopyAndSubstituteTextFiles"
Inputs="@(CopyAndSubstituteText)"
Outputs="@(CopyAndSubstituteText->'$(IntermediateOutputPath)%(Filename)%(Extension)')"
BeforeTargets="BeforeBuild">

<PropertyGroup>
<__TargetFilePath>@(CopyAndSubstituteText->'$(IntermediateOutputPath)%(Filename)%(Extension)')</__TargetFilePath>
<__TargetFileName>@(CopyAndSubstituteText->'%(Filename)%(Extension)')</__TargetFileName>

<_ReplacementText>$([System.IO.File]::ReadAllText('%(CopyAndSubstituteText.FullPath)'))</_ReplacementText>
<_ReplacementText Condition="'%(CopyAndSubstituteText.Pattern1)' != ''">$(_ReplacementText.Replace('%(CopyAndSubstituteText.Pattern1)', '%(CopyAndSubstituteText.Replacement1)'))</_ReplacementText>
<_ReplacementText Condition="'%(CopyAndSubstituteText.Pattern2)' != ''">$(_ReplacementText.Replace('%(CopyAndSubstituteText.Pattern2)', '%(CopyAndSubstituteText.Replacement2)'))</_ReplacementText>
</PropertyGroup>

<MakeDir
Directories="$(IntermediateOutputPath)"
Condition="!Exists('$(IntermediateOutputPath)')" />
<WriteLinesToFile File="$(__TargetFilePath)" Lines="$(_ReplacementText)" Overwrite="true" />

<!-- Make sure it will get cleaned -->
<ItemGroup >
<None Include="$(__TargetFilePath)" Condition="'$(__TargetFileName)' == 'App.config'" CopyToOutputDirectory="Never" />
<None Include="$(__TargetFilePath)" Condition="'$(__TargetFileName)' != 'App.config'" CopyToOutputDirectory="PreserveNewest" />
<FileWrites Include="$(__TargetFilePath)" Condition="'$(__TargetFileName)' != 'App.config'" />
</ItemGroup>
</Target>

<Target Name="_GenerateBuildPropertiesFile"
Outputs="$(IntermediateOutputPath)$(ProjectName)\buildproperties.fs"
BeforeTargets="BeforeBuild"
Condition="'$(Language)'=='F#'">

<ItemGroup>
<_BuildPropertyLines Remove="@(_BuildPropertyLines)" />
<_BuildPropertyLines Include="// &lt;auto-generated &gt;" />
<_BuildPropertyLines Include="// &lt;Generated by the FSharp WriteCodeFragment class./&gt;" />
<_BuildPropertyLines Include="// &lt;/auto-generated/&gt;" />
<_BuildPropertyLines Include="//" />
<_BuildPropertyLines Include="module internal FSharp.BuildProperties" />
<_BuildPropertyLines Include="let fsProductVersion = &quot;$(FSPRODUCTVERSION)&quot;" />
<_BuildPropertyLines Include="let fsLanguageVersion = &quot;$(FSLANGUAGEVERSION)&quot;" />
</ItemGroup>

<MakeDir
Directories="$(IntermediateOutputPath)$(ProjectName)"
Condition="!Exists('$(IntermediateOutputPath)$(ProjectName)')" />
<WriteLinesToFile File="$(IntermediateOutputPath)$(ProjectName)\buildproperties.fs" Lines="@(_BuildPropertyLines)" Overwrite="true" />

<!-- Make sure it will get cleaned -->
<ItemGroup>
<FileWrites Include="$(IntermediateOutputPath)$(ProjectName)\buildproperties.fs" />
<CompileBefore Include="$(IntermediateOutputPath)$(ProjectName)\buildproperties.fs" />
</ItemGroup>
</Target>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,10 @@
<Compile Include="$(FSharpSourcesRoot)\..\tests\service\Program.fs" Condition="'$(TargetFramework)' == 'netcoreapp2.0'">
<Link>Program.fs</Link>
</Compile>
<None Include="App.config" />
<CopyAndSubstituteText Include="App.config">
<Pattern1>{{FSCoreVersion}}</Pattern1>
<Replacement1>$(FSCoreVersion)</Replacement1>
</CopyAndSubstituteText>
</ItemGroup>
<ItemGroup>
<PackageReference Include="FSharp.Core" Version="$(FcsFSharpCorePkgVersion)" />
Expand Down
1 change: 1 addition & 0 deletions fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<DefineConstants>$(DefineConstants);COMPILER</DefineConstants>
<DefineConstants>$(DefineConstants);ENABLE_MONO_SUPPORT</DefineConstants>
<DefineConstants>$(DefineConstants);NO_STRONG_NAMES</DefineConstants>
<DefineConstants>$(DefineConstants);LOCALIZATION_FSCOMP</DefineConstants>
<FsLexOutputFolder Condition="'$(TargetFramework)' != ''">$(TargetFramework)\</FsLexOutputFolder>
<FsYaccOutputFolder Condition="'$(TargetFramework)' != ''">$(TargetFramework)\</FsYaccOutputFolder>
<OtherFlags>$(OtherFlags) /warnon:1182</OtherFlags>
Expand Down
2 changes: 0 additions & 2 deletions src/fsharp/ExtensionTyping.fs
Original file line number Diff line number Diff line change
Expand Up @@ -637,9 +637,7 @@ module internal ExtensionTyping =

static member CreateArray ctxt xs = match xs with null -> null | _ -> xs |> Array.map (ProvidedMethodInfo.Create ctxt)
member __.Handle = x
#if !FX_NO_REFLECTION_METADATA_TOKENS
member __.MetadataToken = x.MetadataToken
#endif
override __.Equals y = assert false; match y with :? ProvidedMethodInfo as y -> x.Equals y.Handle | _ -> false
override __.GetHashCode() = assert false; x.GetHashCode()

Expand Down
2 changes: 0 additions & 2 deletions src/fsharp/ExtensionTyping.fsi
Original file line number Diff line number Diff line change
Expand Up @@ -181,9 +181,7 @@ module internal ExtensionTyping =
ProvidedMethodInfo =
inherit ProvidedMethodBase
member ReturnType : ProvidedType
#if !FX_NO_REFLECTION_METADATA_TOKENS
member MetadataToken : int
#endif

and [<AllowNullLiteral; Sealed; Class>]
ProvidedParameterInfo =
Expand Down
1 change: 1 addition & 0 deletions src/fsharp/FSComp.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1462,3 +1462,4 @@ notAFunctionButMaybeDeclaration,"This value is not a function and cannot be appl
3300,chkInvalidFunctionParameterType,"The parameter '%s' has an invalid type '%s'. This is not permitted by the rules of Common IL."
3301,chkInvalidFunctionReturnType,"The function or method has an invalid return type '%s'. This is not permitted by the rules of Common IL."
useSdkRefs,"Use reference assemblies for .NET framework references when available (Enabled by default)."
fSharpBannerVersion,"%s for F# %s"
3 changes: 2 additions & 1 deletion src/fsharp/FSharp.Build/FSBuild.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# FSharp.Build resource strings
toolpathUnknown,"ToolPath is unknown; specify the path to the tool."
toolpathUnknown,"ToolPath is unknown; specify the path to the tool."
fSharpBannerVersion,"%s for F# %s"
9 changes: 8 additions & 1 deletion src/fsharp/FSharp.Build/FSharp.Build.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<AllowCrossTargeting>true</AllowCrossTargeting>
<OtherFlags>$(OtherFlags) --maxerrors:20 --extraoptimizationloops:1</OtherFlags>
<NGenBinary>true</NGenBinary>
<DefineConstants>$(DefineConstants);LOCALIZATION_FSBUILD</DefineConstants>
</PropertyGroup>

<ItemGroup>
Expand All @@ -27,8 +28,14 @@
<Compile Include="CreateFSharpManifestResourceName.fs" />
<None Include="Microsoft.FSharp.Targets" CopyToOutputDirectory="PreserveNewest" />
<None Include="Microsoft.Portable.FSharp.Targets" CopyToOutputDirectory="PreserveNewest" />
<None Include="Microsoft.FSharp.NetSdk.props" CopyToOutputDirectory="PreserveNewest" />
<None Include="Microsoft.FSharp.NetSdk.targets" CopyToOutputDirectory="PreserveNewest" />
<CopyAndSubstituteText Include="Microsoft.FSharp.NetSdk.props">
<TargetFileName>Microsoft.FSharp.NetSdk.props</TargetFileName>
<Pattern1>{{FSharpCoreShippedPackageVersion}}</Pattern1>
<Replacement1>$(FSharpCoreShippedPackageVersion)</Replacement1>
<Pattern2>{{FSharpCorePreviewPackageVersion}}</Pattern2>
<Replacement2>$(FSharpCorePreviewPackageVersion)</Replacement2>
</CopyAndSubstituteText>
<None Include="Microsoft.FSharp.Overrides.NetSdk.targets" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

Expand Down
3 changes: 2 additions & 1 deletion src/fsharp/FSharp.Build/Microsoft.FSharp.NetSdk.props
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,8 @@ WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and

<PropertyGroup>
<DefaultValueTuplePackageVersion>4.4.0</DefaultValueTuplePackageVersion>
<DefaultFSharpCorePackageVersion>4.6.2</DefaultFSharpCorePackageVersion>
<DefaultFSharpCorePackageVersion>{{FSharpCoreShippedPackageVersion}}</DefaultFSharpCorePackageVersion>
<DefaultFSharpCorePreviewPackageVersion>{{FSharpCorePreviewPackageVersion}}</DefaultFSharpCorePreviewPackageVersion>
<ValueTupleImplicitPackageVersion>$(DefaultValueTuplePackageVersion)</ValueTupleImplicitPackageVersion>
<FSharpCoreImplicitPackageVersion>$(DefaultFSharpCorePackageVersion)</FSharpCoreImplicitPackageVersion>
</PropertyGroup>
Expand Down
6 changes: 6 additions & 0 deletions src/fsharp/FSharp.Build/Microsoft.FSharp.NetSdk.targets
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackageFSharpDesignTimeTools</TargetsForTfmSpecificContentInPackage>
</PropertyGroup>

<!-- When the developer specifies UseFSharpPreview=true then resolve the highest preview package from the F# myget feed -->
<PropertyGroup Condition="'$(UseFSharpPreview)' == 'true'">
<FSharpCoreImplicitPackageVersion>$(DefaultFSharpCorePreviewPackageVersion)</FSharpCoreImplicitPackageVersion>
<RestoreSources>$(RestoreSources); https://dotnet.myget.org/F/fsharp/api/v3/index.json</RestoreSources>
</PropertyGroup>

<Target Name="PackageFSharpDesignTimeTools" DependsOnTargets="_GetFrameworkAssemblyReferences">
<PropertyGroup>
<FSharpDesignTimeProtocol Condition = " '$(FSharpDesignTimeProtocol)' == '' ">fsharp41</FSharpDesignTimeProtocol>
Expand Down
5 changes: 5 additions & 0 deletions src/fsharp/FSharp.Build/xlf/FSBuild.txt.cs.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
<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="../FSBuild.resx">
<body>
<trans-unit id="fSharpBannerVersion">
<source>{0} for F# {1}</source>
<target state="new">{0} for F# {1}</target>
<note />
</trans-unit>
<trans-unit id="toolpathUnknown">
<source>ToolPath is unknown; specify the path to the tool.</source>
<target state="translated">Parametr ToolPath není známý. Zadejte cestu k nástroji.</target>
Expand Down
5 changes: 5 additions & 0 deletions src/fsharp/FSharp.Build/xlf/FSBuild.txt.de.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
<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="../FSBuild.resx">
<body>
<trans-unit id="fSharpBannerVersion">
<source>{0} for F# {1}</source>
<target state="new">{0} for F# {1}</target>
<note />
</trans-unit>
<trans-unit id="toolpathUnknown">
<source>ToolPath is unknown; specify the path to the tool.</source>
<target state="translated">ToolPath unbekannt. Geben Sie den Pfad zum Tool an.</target>
Expand Down
Loading