Skip to content

Commit 1d173b6

Browse files
authored
Merge pull request #940 from baronfel/may-integration
2 parents e0fbb59 + 048082f commit 1d173b6

File tree

145 files changed

+6639
-2774
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

145 files changed

+6639
-2774
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,3 +236,6 @@ msbuild.binlog
236236
.ionide
237237
.vscode
238238
**/.DS_Store
239+
/tests/fsharp/regression/5531/compilation.output.test.txt
240+
/tests/fsharp/core/fsfromfsviacs/compilation.langversion.old.output.txt
241+
/tests/fsharp/core/fsfromfsviacs/compilation.errors.output.txt

FSharpBuild.Directory.Build.targets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" />
44
<Import Project="eng\targets\Imports.targets" />
5+
<Import Project="eng\targets\NGenBinaries.targets" />
56
<Import Project="eng\targets\NuGet.targets" />
67
<Import Project="FSharp.Profiles.props" />
78

benchmarks/CompilerServiceBenchmarks/Program.fs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,6 @@ type CompilerService() =
146146
let readerOptions =
147147
{
148148
pdbDirPath = None
149-
ilGlobals = mkILGlobals ILScopeRef.Local
150149
reduceMemoryUsage = ReduceMemoryFlag.No
151150
metadataOnly = MetadataOnlyFlag.Yes
152151
tryGetMetadataSnapshot = fun _ -> None

clean.sh

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,34 @@ DEAD_DIRS=(
44
"azure-pipelines.yml"
55
"DEVGUIDE.md"
66
"eng/common/templates"
7+
"eng/common/tools.ps1"
78
"FSharp.sln"
9+
"setup/"
810
"src/fsharp/fsc/fsc.fsproj"
9-
"src/fsharp/FSharp.Build/FSharp.Build.fsproj"
11+
"src/fsharp/FSharp.Build"
1012
"src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec"
1113
"src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj"
12-
"src/fsharp/FSharp.DependencyManager/xlf/"
1314
"src/fsharp/fsi/fsi.fsproj"
1415
"src/fsharp/fsiAnyCpu/fsiAnyCpu.fsproj"
16+
"src/fsharp/Microsoft.DotNet.DependencyManager/xlf"
1517
"src/fsharp/Interactive.DependencyManager/xlf"
1618
"src/fsharp/xlf"
1719
"TESTGUIDE.md"
1820
"tests/EndToEndBuildTests"
21+
"tests/FSharp.Build.UnitTests"
1922
"tests/FSharp.Compiler.Private.Scripting.UnitTests"
2023
"tests/FSharp.Compiler.UnitTests"
2124
"tests/FSharp.Core.UnitTests"
25+
"tests/fsharp/*.fs"
2226
"tests/fsharp/Compiler"
2327
"tests/fsharp/conformance"
2428
"tests/fsharp/core"
2529
"tests/fsharp/FSharpSuite.Tests.fsproj"
30+
"tests/fsharp/regression"
2631
"tests/fsharp/test-framework.fs"
2732
"tests/fsharp/tests.fs"
2833
"tests/fsharp/typecheck"
34+
"tests/fsharp/typeProviders"
2935
"tests/fsharpqa"
3036
"tests/scripts"
3137
"VisualFSharp.sln"

eng/Build.ps1

Lines changed: 105 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,9 +273,17 @@ function BuildCompiler() {
273273
$argNoRestore = if ($norestore) { " --no-restore" } else { "" }
274274
$argNoIncremental = if ($rebuild) { " --no-incremental" } else { "" }
275275

276+
if ($binaryLog) {
277+
$logFilePath = Join-Path $LogDir "fscBootstrapLog.binlog"
278+
$args += " /bl:$logFilePath"
279+
}
276280
$args = "build $fscProject -c $configuration -v $verbosity -f netcoreapp3.0" + $argNoRestore + $argNoIncremental
277281
Exec-Console $dotnetExe $args
278282

283+
if ($binaryLog) {
284+
$logFilePath = Join-Path $LogDir "fsiBootstrapLog.binlog"
285+
$args += " /bl:$logFilePath"
286+
}
279287
$args = "build $fsiProject -c $configuration -v $verbosity -f netcoreapp3.0" + $argNoRestore + $argNoIncremental
280288
Exec-Console $dotnetExe $args
281289
}
@@ -286,6 +294,100 @@ function Prepare-TempDir() {
286294
Copy-Item (Join-Path $RepoRoot "tests\Resources\Directory.Build.targets") $TempDir
287295
}
288296

297+
function DownloadDotnetFrameworkSdk() {
298+
$dlTempPath = [System.IO.Path]::GetTempPath()
299+
$dlRandomFile = [System.IO.Path]::GetRandomFileName()
300+
$net48Dir = Join-Path $dlTempPath $dlRandomFile
301+
Create-Directory $net48Dir
302+
303+
$net48Exe = Join-Path $net48Dir "ndp48-devpack-enu.exe"
304+
$dlLogFilePath = Join-Path $LogDir "dotnet48.install.log"
305+
Invoke-WebRequest "https://go.microsoft.com/fwlink/?linkid=2088517" -OutFile $net48Exe
306+
307+
Write-Host "Exec-Console $net48Exe /install /quiet /norestart /log $dlLogFilePath"
308+
Exec-Console $net48Exe "/install /quiet /norestart /log $dlLogFilePath"
309+
}
310+
311+
function Test-IsAdmin {
312+
([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
313+
}
314+
315+
function TryDownloadDotnetFrameworkSdk() {
316+
# If we are not running as admin user, don't bother grabbing ndp sdk -- since we don't need sn.exe
317+
$isAdmin = Test-IsAdmin
318+
Write-Host "TryDownloadDotnetFrameworkSdk -- Test-IsAdmin = '$isAdmin'"
319+
if ($isAdmin -eq $true)
320+
{
321+
# Get program files(x86) location
322+
if (${env:ProgramFiles(x86)} -eq $null) {
323+
$programFiles = $env:ProgramFiles
324+
}
325+
else {
326+
$programFiles = ${env:ProgramFiles(x86)}
327+
}
328+
329+
# Get windowsSDK location for x86
330+
$windowsSDK_ExecutablePath_x86 = $env:WindowsSDK_ExecutablePath_x86
331+
$newWindowsSDK_ExecutablePath_x86 = Join-Path "$programFiles" "Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools"
332+
333+
if ($windowsSDK_ExecutablePath_x86 -eq $null) {
334+
$snPathX86 = Join-Path $newWindowsSDK_ExecutablePath_x86 "sn.exe"
335+
}
336+
else {
337+
$snPathX86 = Join-Path $windowsSDK_ExecutablePath_x86 "sn.exe"
338+
$snPathX86Exists = Test-Path $snPathX86 -PathType Leaf
339+
if ($snPathX86Exists -ne $true) {
340+
$windowsSDK_ExecutablePath_x86 = null
341+
$snPathX86 = Join-Path $newWindowsSDK_ExecutablePath_x86 "sn.exe"
342+
}
343+
}
344+
345+
$windowsSDK_ExecutablePath_x64 = $env:WindowsSDK_ExecutablePath_x64
346+
$newWindowsSDK_ExecutablePath_x64 = Join-Path "$programFiles" "Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64"
347+
348+
if ($windowsSDK_ExecutablePath_x64 -eq $null) {
349+
$snPathX64 = Join-Path $newWindowsSDK_ExecutablePath_x64 "sn.exe"
350+
}
351+
else {
352+
$snPathX64 = Join-Path $windowsSDK_ExecutablePath_x64 "sn.exe"
353+
$snPathX64Exists = Test-Path $snPathX64 -PathType Leaf
354+
if ($snPathX64Exists -ne $true) {
355+
$windowsSDK_ExecutablePath_x86 = null
356+
$snPathX64 = Join-Path $newWindowsSDK_ExecutablePath_x64 "sn.exe"
357+
}
358+
}
359+
360+
$snPathX86Exists = Test-Path $snPathX86 -PathType Leaf
361+
Write-Host "pre-dl snPathX86Exists : $snPathX86Exists - '$snPathX86'"
362+
if ($snPathX86Exists -ne $true) {
363+
DownloadDotnetFrameworkSdk
364+
}
365+
366+
$snPathX86Exists = Test-Path $snPathX86 -PathType Leaf
367+
if ($snPathX86Exists -eq $true) {
368+
if ($windowsSDK_ExecutablePath_x86 -ne $newWindowsSDK_ExecutablePath_x86) {
369+
$windowsSDK_ExecutablePath_x86 = $newWindowsSDK_ExecutablePath_x86
370+
# x86 environment variable
371+
Write-Host "set WindowsSDK_ExecutablePath_x86=$WindowsSDK_ExecutablePath_x86"
372+
[System.Environment]::SetEnvironmentVariable("WindowsSDK_ExecutablePath_x86","$newWindowsSDK_ExecutablePath_x86",[System.EnvironmentVariableTarget]::Machine)
373+
$env:WindowsSDK_ExecutablePath_x86 = $newWindowsSDK_ExecutablePath_x86
374+
}
375+
}
376+
377+
# Also update environment variable for x64
378+
$snPathX64Exists = Test-Path $snPathX64 -PathType Leaf
379+
if ($snPathX64Exists -eq $true) {
380+
if ($windowsSDK_ExecutablePath_x64 -ne $newWindowsSDK_ExecutablePath_x64) {
381+
$windowsSDK_ExecutablePath_x64 = $newWindowsSDK_ExecutablePath_x64
382+
# x64 environment variable
383+
Write-Host "set WindowsSDK_ExecutablePath_x64=$WindowsSDK_ExecutablePath_x64"
384+
[System.Environment]::SetEnvironmentVariable("WindowsSDK_ExecutablePath_x64","$newWindowsSDK_ExecutablePath_x64",[System.EnvironmentVariableTarget]::Machine)
385+
$env:WindowsSDK_ExecutablePath_x64 = $newWindowsSDK_ExecutablePath_x64
386+
}
387+
}
388+
}
389+
}
390+
289391
function EnablePreviewSdks() {
290392
if (Test-Path variable:global:_MSBuildExe) {
291393
return
@@ -322,9 +424,11 @@ try {
322424
EnablePreviewSdks
323425
}
324426

427+
$buildTool = InitializeBuildTool
428+
$toolsetBuildProj = InitializeToolset
429+
TryDownloadDotnetFrameworkSdk
325430
if ($bootstrap) {
326431
$script:BuildMessage = "Failure building bootstrap compiler"
327-
$toolsetBuildProj = InitializeToolset
328432
$bootstrapDir = Make-BootstrapBuild
329433
}
330434

eng/Version.Details.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<ProductDependencies>
44
</ProductDependencies>
55
<ToolsetDependencies>
6-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.20208.8">
6+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.20302.3">
77
<Uri>https://github.com/dotnet/arcade</Uri>
8-
<Sha>0554dd21ef58e0ad23ad20388d05f11ab6cf3fa7</Sha>
8+
<Sha>9b71be0663493cd0e111b55536a2e1eeb272f54c</Sha>
99
</Dependency>
1010
</ToolsetDependencies>
1111
</Dependencies>

eng/Versions.props

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,23 @@
1414
<PreReleaseVersionLabel>beta</PreReleaseVersionLabel>
1515
<FSLanguageVersion>4.7</FSLanguageVersion>
1616
<FSCoreMajorVersion>$(FSLanguageVersion)</FSCoreMajorVersion>
17-
<FSCorePackageVersion>$(FSCoreMajorVersion).2</FSCorePackageVersion>
17+
<FSCorePackageVersion>$(FSCoreMajorVersion).3</FSCorePackageVersion>
1818
<FSCoreVersionPrefix>$(FSCoreMajorVersion).0</FSCoreVersionPrefix>
1919
<FSCoreVersion>$(FSCoreVersionPrefix).0</FSCoreVersion>
2020
<!-- The current published nuget package -->
21-
<FSharpCoreShippedPackageVersion>4.7.1</FSharpCoreShippedPackageVersion>
21+
<FSharpCoreShippedPackageVersion>4.7.2</FSharpCoreShippedPackageVersion>
2222
<!-- The pattern for specifying the preview package -->
2323
<FSharpCorePreviewPackageVersion>$(FSCorePackageVersion)-$(PreReleaseVersionLabel).*</FSharpCorePreviewPackageVersion>
2424
</PropertyGroup>
2525
<PropertyGroup>
26-
<FSPackageMajorVersion>10.8</FSPackageMajorVersion>
27-
<FSPackageVersion>$(FSPackageMajorVersion).1</FSPackageVersion>
26+
<FSPackageMajorVersion>10.10</FSPackageMajorVersion>
27+
<FSPackageVersion>$(FSPackageMajorVersion).0</FSPackageVersion>
2828
<FSProductVersionPrefix>$(FSPackageVersion)</FSProductVersionPrefix>
2929
<FSProductVersion>$(FSPackageVersion).0</FSProductVersion>
3030
</PropertyGroup>
3131
<PropertyGroup>
3232
<VSMajorVersion>16</VSMajorVersion>
33-
<VSMinorVersion>5</VSMinorVersion>
33+
<VSMinorVersion>6</VSMinorVersion>
3434
<VSGeneralVersion>$(VSMajorVersion).0</VSGeneralVersion>
3535
<VSAssemblyVersionPrefix>$(VSMajorVersion).$(VSMinorVersion).0</VSAssemblyVersionPrefix>
3636
<VSAssemblyVersion>$(VSAssemblyVersionPrefix).0</VSAssemblyVersion>
@@ -177,7 +177,6 @@
177177
<MicrosoftNETCoreILDAsmVersion>3.0.0-preview-27318-01</MicrosoftNETCoreILDAsmVersion>
178178
<MicrosoftNETCoreILAsmVersion>3.0.0-preview-27318-01</MicrosoftNETCoreILAsmVersion>
179179
<MicrosoftNETTestSdkVersion>15.8.0</MicrosoftNETTestSdkVersion>
180-
<MicrosoftVisualFSharpTypeProvidersRedistVersion>1.0.0</MicrosoftVisualFSharpTypeProvidersRedistVersion>
181180
<MicrosoftWin32RegistryVersion>4.3.0</MicrosoftWin32RegistryVersion>
182181
<NewtonsoftJsonVersion>9.0.1</NewtonsoftJsonVersion>
183182
<NUnitVersion>3.11.0</NUnitVersion>

eng/build-utils.ps1

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,10 @@ function Make-BootstrapBuild() {
245245
$argNoIncremental = if ($rebuild) { " --no-incremental" } else { "" }
246246

247247
$args = "build $buildToolsProject -c $bootstrapConfiguration -v $verbosity -f netcoreapp3.0" + $argNoRestore + $argNoIncremental
248+
if ($binaryLog) {
249+
$logFilePath = Join-Path $LogDir "toolsBootstrapLog.binlog"
250+
$args += " /bl:$logFilePath"
251+
}
248252
Exec-Console $dotnetExe $args
249253

250254
Copy-Item "$ArtifactsDir\bin\fslex\$bootstrapConfiguration\netcoreapp3.0" -Destination "$dir\fslex" -Force -Recurse
@@ -254,6 +258,10 @@ function Make-BootstrapBuild() {
254258
# prepare compiler
255259
$protoProject = "$RepoRoot\proto.proj"
256260
$args = "build $protoProject -c $bootstrapConfiguration -v $verbosity -f $bootstrapTfm" + $argNoRestore + $argNoIncremental
261+
if ($binaryLog) {
262+
$logFilePath = Join-Path $LogDir "protoBootstrapLog.binlog"
263+
$args += " /bl:$logFilePath"
264+
}
257265
Exec-Console $dotnetExe $args
258266

259267
Copy-Item "$ArtifactsDir\bin\fsc\$bootstrapConfiguration\$bootstrapTfm" -Destination "$dir\fsc" -Force -Recurse

eng/targets/NGenBinaries.targets

Lines changed: 60 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,70 @@
11
<Project>
22

3-
<!-- Windows permissions means that users can't even see the directory $(SystemRoot)System32\config -->
4-
<PropertyGroup Condition="'$(OS)' != 'Unix' AND Exists('$(SystemRoot)\System32\config\system')">
5-
<IsAdministrator>true</IsAdministrator>
6-
<DelaySign>true</DelaySign>
7-
<PublicSign>false</PublicSign>
8-
</PropertyGroup>
3+
<Target Name="SetIsAdministrator" Condition="'$(OS)' != 'Unix'"
4+
BeforeTargets="MaybeSetSigning">
5+
<Exec Command="net session &gt;nul 2&gt;&amp;1" ConsoleToMSBuild="true" IgnoreExitCode="true">
6+
<Output TaskParameter="ExitCode" PropertyName="ErrorCode" />
7+
</Exec>
8+
<PropertyGroup>
9+
<IsAdministrator Condition="'$(ErrorCode)' != '0'">false</IsAdministrator>
10+
<IsAdministrator Condition="'$(ErrorCode)' == '0'">true</IsAdministrator>
11+
</PropertyGroup>
12+
</Target>
13+
14+
<Target Name="MaybeSetSigning"
15+
BeforeTargets="CoreCompile"
16+
AfterTargets="BeforeCoreCompile"
17+
Condition="'$(OS)' != 'Unix'">
18+
19+
<PropertyGroup Condition="'$(IsAdministrator)' == 'true' ">
20+
<DelaySign>true</DelaySign>
21+
<PublicSign>false</PublicSign>
22+
</PropertyGroup>
23+
</Target>
924

1025
<Target Name="NGenWindowsBinaries"
11-
AfterTargets="AfterBuild"
12-
Condition="'$(OS)' != 'Unix' AND
13-
$(TargetFramework.StartsWith('net4')) AND
14-
'$(NGenBinary)' == 'true' AND
15-
Exists('$(TargetPath)') ">
26+
AfterTargets="Build"
27+
Condition="'$(OS)' != 'Unix' AND $(TargetFramework.StartsWith('net4')) AND '$(NGenBinary)' == 'true' AND '$(IsAdministrator)' == 'true' AND Exists('$(TargetPath)') ">
28+
1629
<PropertyGroup>
17-
<PathToNGen64>$(windir)\Microsoft.NET\Framework64\v4.0.30319\ngen.exe</PathToNGen64>
1830
<PathToNGen32>$(windir)\Microsoft.NET\Framework\v4.0.30319\ngen.exe</PathToNGen32>
19-
<PathToSN32>$(WindowsSDK_ExecutablePath_x86)sn.exe</PathToSN32>
31+
<PathToNGen64>$(windir)\Microsoft.NET\Framework64\v4.0.30319\ngen.exe</PathToNGen64>
2032
</PropertyGroup>
2133

22-
<!--
23-
Enable Skip Verification and then NGen for both 32 and 64 bit product.
24-
If compiling use the app config file, if present.
25-
-->
26-
<Exec Command='"$(PathToSN32)" /Vr "$(TargetPath)"' Condition = "Exists('$(PathToSN32)') AND Exists('$(TargetPath)') AND '$(IsAdministrator)' == 'true'"/>
34+
<Exec Command='"$(PathToNGen32)" install "$(TargetPath)" /nologo /silent /ExeConfig:$(TargetPath)'
35+
Condition = "Exists('$(PathToNGen32)') AND '$(PlatformTarget)' != 'x64' AND Exists('$(TargetPath).config') AND '$(OutputType)' == 'Exe' AND '$(IsAdministrator)' == 'true'"
36+
ConsoleToMSBuild="true"
37+
IgnoreStandardErrorWarningFormat="true" />
38+
39+
<Exec Command='"$(PathToNGen32)" install "$(TargetPath)" /nologo /silent'
40+
Condition = " Exists('$(PathToNGen32)') AND '$(PlatformTarget)' != 'x64' AND (!Exists('$(TargetPath).config') OR '$(OutputType)' != 'Exe') AND '$(IsAdministrator)' == 'true' "
41+
ConsoleToMSBuild="true"
42+
IgnoreStandardErrorWarningFormat="true"/>
43+
44+
<Exec Command='"$(PathToNGen64)" install "$(TargetPath)" /nologo /silent /ExeConfig:$(TargetPath)'
45+
Condition = "Exists('$(PathToNGen64)') AND '$(PlatformTarget)' != 'x86' AND Exists('$(TargetPath).config') AND '$(OutputType)' == 'Exe' AND '$(IsAdministrator)' == 'true'"
46+
ConsoleToMSBuild="true"
47+
IgnoreStandardErrorWarningFormat="true" />
48+
49+
<Exec Command='"$(PathToNGen64)" install "$(TargetPath)" /nologo /silent'
50+
Condition = " Exists('$(PathToNGen64)') AND '$(PlatformTarget)' != 'x86' AND (!Exists('$(TargetPath).config') OR '$(OutputType)' != 'Exe') AND '$(IsAdministrator)' == 'true' "
51+
ConsoleToMSBuild="true"
52+
IgnoreStandardErrorWarningFormat="true"/>
2753

28-
<Exec Command='"$(PathToNGen64)" install "$(TargetPath)" /ExeConfig:$(TargetPath)' Condition = "Exists('$(PathToNGen64)') AND '$(PlatformTarget)' != 'x86' AND Exists('$(TargetPath).config') AND '$(IsAdministrator)' == 'true'"/>
29-
<Exec Command='"$(PathToNGen32)" install "$(TargetPath)" /ExeConfig:$(TargetPath)' Condition = "Exists('$(PathToNGen32)') AND '$(PlatformTarget)' != 'x64' AND Exists('$(TargetPath).config') AND '$(IsAdministrator)' == 'true'"/>
30-
<Exec Command='"$(PathToNGen64)" install "$(TargetPath)"' Condition = " Exists('$(PathToNGen64)') AND '$(PlatformTarget)' != 'x86' AND (!Exists('$(TargetPath).config')) AND '$(IsAdministrator)' == 'true' "/>
31-
<Exec Command='"$(PathToNGen32)" install "$(TargetPath)"' Condition = " Exists('$(PathToNGen32)') AND '$(PlatformTarget)' != 'x64' AND (!Exists('$(TargetPath).config')) AND '$(IsAdministrator)' == 'true' "/>
3254
</Target>
33-
</Project>
55+
56+
<Target Name="SetSkipVerification"
57+
BeforeTargets="NGenWindowsBinaries"
58+
AfterTargets="CopyFilesToOutputDirectory"
59+
Condition="'$(OS)' != 'Unix' AND '$(IsAdministrator)' == 'true' AND '$(AssemblyOriginatorKeyFile)' != '' AND Exists('$(TargetPath)') ">
60+
61+
<PropertyGroup>
62+
<PathToSN32>$(WindowsSDK_ExecutablePath_x86)\sn.exe</PathToSN32>
63+
<PathToSN64>$(WindowsSDK_ExecutablePath_x64)\sn.exe</PathToSN64>
64+
</PropertyGroup>
65+
66+
<Exec Command='"$(PathToSN32)" /q /Vr "$(TargetPath)"' Condition = "Exists('$(PathToSN32)') AND '$(DelaySign)' == 'true' AND Exists('$(TargetPath)') AND '$(IsAdministrator)' == 'true'" ConsoleToMsBuild='true' />
67+
<Exec Command='"$(PathToSN64)" /q /Vr "$(TargetPath)"' Condition = "Exists('$(PathToSN64)') AND '$(DelaySign)' == 'true' AND Exists('$(TargetPath)') AND '$(IsAdministrator)' == 'true'" ConsoleToMsBuild='true' />
68+
</Target>
69+
70+
</Project>

0 commit comments

Comments
 (0)