well bummer, updated visual studio to 16.2.1 and now FSharp no longer compiles.
1>------ Build started: Project: TafSdk, Configuration: Debug Any CPU ------
1>TafSdk -> D:\prod\structuresBuildDrop\Workbin_x64\Test\Features\TafSdk.dll
2>------ Build started: Project: FarmiCaseHelpers, Configuration: Debug Any CPU ------
2>FSC : error FS2026: Deterministic builds only support portable PDBs (--debug:portable or --debug:embedded)
2>Done building project "FarmiCaseHelpers.fsproj" -- FAILED.
3>------ Build started: Project: FarmiAdapterUtils, Configuration: Debug Any CPU ------
3>CSC : error CS0006: Metadata file 'D:\prod\structuresBuildDrop\Workbin_x64\Test\TestAdapters\FarmiCaseHelpers.dll' could not be found
3>Done building project "FarmiAdapterUtils.csproj" -- FAILED.
4>------ Build started: Project: FarmiAdapterTask, Configuration: Debug Any CPU ------
4>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuildCurrentBin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3277: Found conflicts between different versions of "Microsoft.Build.Framework" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
4>FSC : error FS2026: Deterministic builds only support portable PDBs (--debug:portable or --debug:embedded)
4>Done building project "FarmiAdapterTask.fsproj" -- FAILED.
========== Build: 1 succeeded, 3 failed, 0 up-to-date, 0 skipped ==========
i hope im not the only one having this issue. those are caused by
<PropertyGroup Label="Configuration" Condition=" '$(Configuration)' == 'Debug' ">
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition=" '$(Configuration)' == 'Release' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
</PropertyGroup>
that we centrally managed since like forever. How can i fix this now? thanks
by the way im targetting net472, so the debugtype full should work on this conditions
cc @KevinRansom
@jmecosta the coreclr has only ever supported portable pdbs with deterministic build.
We recently … 4 months ago, added support for deterministic to the F# compiler.
Unfortunately, the dotnet SDK property for deterministic "Deterministic" defaults to true, we would rather not have a different property for F# only, and that means that projects that use the netsdk and set the debugtype to Full will need to add this near where the debugtype is set to full, or use portable pdbs.
<Deterministic>false</Deterministic>
It should be noted that only the desktop F# compiler supports generating full pdbs and so I recommend switching to portable pdbs, or even better embedded pdbs.
@KevinRansom Is this considered by design then?
Yes, it is.
@KevinRansom yes ive found the solution for this
<DebugType>portable</DebugType>
however doesnt seem to work always
1>------ Build started: Project: MsbuildController.Test, Configuration: Release x64 ------
1>C:\Program Files\dotnet\sdk\3.0.100-preview6-012264\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(158,5): message NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-preview
1>FSC : error FS2026: Deterministic builds only support portable PDBs (--debug:portable or --debug:embedded)
1>Done building project "MsbuildController.Test.fsproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 2 up-to-date, 0 skipped ==========

Most helpful comment
@jmecosta the coreclr has only ever supported portable pdbs with deterministic build.
We recently … 4 months ago, added support for deterministic to the F# compiler.
Unfortunately, the dotnet SDK property for deterministic "Deterministic" defaults to true, we would rather not have a different property for F# only, and that means that projects that use the netsdk and set the debugtype to Full will need to add this near where the debugtype is set to full, or use portable pdbs.
<Deterministic>false</Deterministic>It should be noted that only the desktop F# compiler supports generating full pdbs and so I recommend switching to portable pdbs, or even better embedded pdbs.