ionide / FsAutoComplete

F# language server using Language Server Protocol
Other
417 stars 154 forks source link

Unable to resolve 'System.Data' #96

Closed rojepp closed 7 years ago

rojepp commented 8 years ago

Compiler error:

screenshot 2016-03-08 14 22 50

I see this in VS code and in Atom. The project works fine in VS, and System.Data is referenced.

Small repro project: ConsoleApplication3.zip

rneatherway commented 8 years ago

Please could you try to get the log output as described at https://github.com/fsharp/emacs-fsharp-mode#project-file-issues ?

rojepp commented 8 years ago

This is what I get after running ProjectCracker from command line:

{ProjectFile = "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj"; Options = [||]; ReferencedProjectOptions = [||]; LogOutput = "Microsoft.Build.Exceptions.InvalidProjectFileException: The value "" of the "Project" attribute in element is invalid. Parameter "path" cannot have zero length. at Microsoft.Build.Shared.ProjectErrorUtilities.ThrowInvalidProject(String errorSubCategoryResourceName, IElementLocation elementLocation, String resourceName, Object[] args) at Microsoft.Build.Shared.ProjectErrorUtilities.VerifyThrowInvalidProject(Boolean condition, String errorSubCategoryResourceName, IElementLocation elementLocation, String resourceName, Object arg0, Object arg1, Object arg2, Object arg3) at Microsoft.Build.Evaluation.Evaluator4.ExpandAndLoadImports(String directoryOfImportingFile, String importExpressionEscaped, ProjectImportElement importElement) at Microsoft.Build.Evaluation.Evaluator4.EvaluateImportElement(String directoryOfImportingFile, ProjectImportElement importElement) at Microsoft.Build.Evaluation.Evaluator4.PerformDepthFirstPass(ProjectRootElement currentProjectOrImport) at Microsoft.Build.Evaluation.Evaluator4.Evaluate() at Microsoft.Build.Evaluation.Evaluator4.Evaluate(IEvaluatorData4 data, ProjectRootElement root, ProjectLoadSettings loadSettings, Int32 maxNodeCount, PropertyDictionary1 environmentProperties, ILoggingService loggingService, IItemFactory2 itemFactory, IToolsetProvider toolsetProvider, ProjectRootElementCache projectRootElementCache, BuildEventContext buildEventContext, ProjectInstance projectInstanceIfAnyForDebuggerOnly) at Microsoft.Build.Evaluation.Project.ReevaluateIfNecessary(ILoggingService loggingServiceForEvaluation) at Microsoft.Build.Evaluation.Project.Initialize(IDictionary2 globalProperties, String toolsVersion, String subToolsetVersion, ProjectLoadSettings loadSettings) at Microsoft.Build.Evaluation.Project..ctor(XmlReader xmlReader, IDictionary2 globalProperties, String toolsVersion, String subToolsetVersion, ProjectCollection projectCollection, ProjectLoadSettings loadSettings) at Microsoft.FSharp.Compiler.SourceCodeServices.ProjectCrackerTool.Program.projectInstanceFromFullPath@124(FSharpProjectFileInfo this, ProjectCollection engine, String fsprojFullPath) at Microsoft.FSharp.Compiler.SourceCodeServices.ProjectCrackerTool.Program.FSharpProjectFileInfo.CrackProjectUsingNewBuildAPI(String fsprojFile) at Microsoft.FSharp.Compiler.SourceCodeServices.ProjectCrackerTool.Program.FSharpProjectFileInfo..ctor(String fsprojFileName, FSharpOption1 properties, FSharpOption1 enableLogging) at Microsoft.FSharp.Compiler.SourceCodeServices.ProjectCrackerTool.Program.getOptions@358(Boolean enableLogging, FSharpList1 properties, String file) at Microsoft.FSharp.Compiler.SourceCodeServices.ProjectCrackerTool.Program.getOptions(String file, Boolean enableLogging, FSharpList1 properties) at Microsoft.FSharp.Compiler.SourceCodeServices.ProjectCrackerTool.Program.main(String[] argv)";}

This project file was created in VS2015, and should work without modification?

rojepp commented 8 years ago

There are two imports in the generated fsproj and none of them have a path attribute:

  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <Import Project="$(FSharpTargetsPath)" />
rojepp commented 8 years ago

If I remove both of the imports I get a different error:

{ProjectFile = "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj"; Options = [|"--simpleresolution"; "--noframework"; "--doc:C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\bin\Debug\ConsoleApplication3.XML"; "--fullpaths"; "--flaterrors"; "--target:exe"; "--define:DEBUG"; "--define:TRACE"; "--debug+"; "--optimize-"; "--tailcalls-"; "--debug:full"; "--platform:anycpu"; "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\AssemblyInfo.fs"; "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\Program.fs"|]; ReferencedProjectOptions = [||]; LogOutput = "Build started. Project "ConsoleApplication3.fsproj" (Build target(s)): Building with tools version "12.0". Project file contains ToolsVersion="14.0". This toolset may be unknown or missing, in which case you may be able to resolve this by installing the appropriate version of MSBuild, or the build may have been forced to a particular ToolsVersion for policy reasons. Treating the project as if it had ToolsVersion="12.0". For more information, please see http://go.microsoft.com/fwlink/?LinkId=293424. The target "Build" does not exist in the project. Done building project "ConsoleApplication3.fsproj" -- FAILED. Build FAILED. ";}

rneatherway commented 8 years ago

I'm pretty sure the error means that <Import Project="$(FSharpTargetsPath)" /> is where the problem is. The value of the attribute Project is what is being referred to as path.

FSharpTargetsPath is set by:

  <PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets')">
    <FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
  </PropertyGroup>

And the VisualStudioVersion is set in turn by this code: https://github.com/fsharp/FSharp.Compiler.Service/blob/master/src/fsharp/FSharp.Compiler.Service.ProjectCrackerTool/Program.fs#L124

So it's possible that you don't have VS installed in a standard location? Could you check whether msbuild.exe is in any of the places the cracker is looking?

When we get a bit further we should move this over to the FCS repo as it is an issue with the project cracker.

rojepp commented 8 years ago

MSBuild is in standard locations: C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe

So it looks like the code you pointed to should find it?

But I did notice that VS generated this for FSharpTargetsPath:

  <Choose>
    <When Condition="'$(VisualStudioVersion)' == '11.0'">
      <PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')">
        <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
      </PropertyGroup>
    </When>
    <Otherwise>
      <PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets')">
        <FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
      </PropertyGroup>
    </Otherwise>
  </Choose>

This means FSharpTargetsPath will be empty, because VS version is 14.0 and my Fsharp targets file is at C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.targets

I changed it to

  <PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')">
        <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
  </PropertyGroup>
  <PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets')">
        <FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
  </PropertyGroup>
  <PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.Targets')">
        <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
  </PropertyGroup>

and now I get the output below. I still get the compiler error on open System.Data.

{ProjectFile = "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj"; Options = [|"--simpleresolution"; "--noframework"; "--out:C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\bin\Debug\ConsoleApplication3.exe"; "--doc:C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\bin\Debug\ConsoleApplication3.XML"; "--subsystemversion:6.00"; "--highentropyva+"; "--fullpaths"; "--flaterrors"; "--target:exe"; "--define:DEBUG"; "--define:TRACE"; "--debug+"; "--optimize-"; "--tailcalls-"; "--debug:full"; "--platform:anycpu"; "-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.4.0.0\FSharp.Core.dll"; "-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\mscorlib.dll"; "-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.Core.dll"; "-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.Data.dll"; "-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.dll"; "-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.Numerics.dll"; "-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.Transactions.dll"; "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\AssemblyInfo.fs"; "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\Program.fs"|]; ReferencedProjectOptions = [||]; LogOutput = "Build started. Project "ConsoleApplication3.fsproj" (Build target(s)): Building with tools version "12.0". Project file contains ToolsVersion="14.0". This toolset may be unknown or missing, in which case you may be able to resolve this by installing the appropriate version of MSBuild, or the build may have been forced to a particular ToolsVersion for policy reasons. Treating the project as if it had ToolsVersion="12.0". For more information, please see http://go.microsoft.com/fwlink/?LinkId=293424. Target "_CheckForInvalidConfigurationAndPlatform" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (entry point): Task "Error" skipped, due to false condition; ( '$(_InvalidConfigurationError)' == 'true' ) was evaluated as ( '' == 'true' ). Task "Warning" skipped, due to false condition; ( '$(_InvalidConfigurationWarning)' == 'true' ) was evaluated as ( '' == 'true' ). Using "Message" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "Message" Configuration=Debug Done executing task "Message". Task "Message" Platform=AnyCPU Done executing task "Message". Task "Error" skipped, due to false condition; ('$(OutDir)' != '' and !HasTrailingSlash('$(OutDir)')) was evaluated as ('bin\Debug\' != '' and !HasTrailingSlash('bin\Debug\')). Task "Error" skipped, due to false condition; ('$(BaseIntermediateOutputPath)' != '' and !HasTrailingSlash('$(BaseIntermediateOutputPath)')) was evaluated as ('obj\' != '' and !HasTrailingSlash('obj\')). Task "Error" skipped, due to false condition; ('$(IntermediateOutputPath)' != '' and !HasTrailingSlash('$(IntermediateOutputPath)')) was evaluated as ('obj\Debug\' != '' and !HasTrailingSlash('obj\Debug\')). Done building target "_CheckForInvalidConfigurationAndPlatform" in project "ConsoleApplication3.fsproj". Target "EntityDeploy" skipped, due to false condition; ('@(EntityDeploy)' != '') was evaluated as ('' != ''). Target "BeforeBuild" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "Build" depends on it): Done building target "BeforeBuild" in project "ConsoleApplication3.fsproj". Target "BuildOnlySettings" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "CoreBuild" depends on it): Done building target "BuildOnlySettings" in project "ConsoleApplication3.fsproj". Target "GetFrameworkPaths" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.NetFramework.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "PrepareForBuild" depends on it): Done building target "GetFrameworkPaths" in project "ConsoleApplication3.fsproj". Target "GetWinFXPath" skipped, due to false condition; (('@(Page)' != '' or '@(ApplicationDefinition)' != '' or '@(Resource)' != '') and ('$(GetWinFXNativePath)' != '' or '$(GetWinFXWoWPath)' != '' )) was evaluated as (('' != '' or '' != '' or '' != '') and ('' != '' or '' != '' )). Target "GetReferenceAssemblyPaths" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "PrepareForBuild" depends on it): Using "GetReferenceAssemblyPaths" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "GetReferenceAssemblyPaths" Done executing task "GetReferenceAssemblyPaths". Done building target "GetReferenceAssemblyPaths" in project "ConsoleApplication3.fsproj". Target "AssignLinkMetadata" skipped, due to false condition; ( '$(SynthesizeLinkMetadata)' == 'true' ) was evaluated as ( '' == 'true' ). Target "PrepareForBuild" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "CoreBuild" depends on it): Using "FindAppConfigFile" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "FindAppConfigFile" Found "App.config". Done executing task "FindAppConfigFile". Using "MakeDir" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "MakeDir" Done executing task "MakeDir". Done building target "PrepareForBuild" in project "ConsoleApplication3.fsproj". Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!=''). Target "BeforeResolveReferences" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResolveReferences" depends on it): Done building target "BeforeResolveReferences" in project "ConsoleApplication3.fsproj". Target "AssignProjectConfiguration" skipped, due to false condition; ('$(CurrentSolutionConfigurationContents)' != '' or '@(ProjectReference)'!='') was evaluated as ('' != '' or ''!=''). Target "AssignProjectConfiguration" skipped, due to false condition; ('$(CurrentSolutionConfigurationContents)' != '' or '@(ProjectReference)'!='') was evaluated as ('' != '' or ''!=''). Target "_SplitProjectReferencesByFileExistence" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResolveProjectReferences" depends on it): Task "ResolveNonMSBuildProjectOutput" skipped, due to false condition; ('$(BuildingInsideVisualStudio)'=='true' and '@(ProjectReferenceWithConfiguration)'!='') was evaluated as ('true'=='true' and ''!=''). Done building target "_SplitProjectReferencesByFileExistence" in project "ConsoleApplication3.fsproj". Target "ResolveProjectReferences" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResolveReferences" depends on it): Task "MSBuild" skipped, due to false condition; ('%(_MSBuildProjectReferenceExistent.BuildReference)' == 'true' and '@(ProjectReferenceWithConfiguration)' != '' and ('$(BuildingInsideVisualStudio)' == 'true' or '$(BuildProjectReferences)' != 'true') and '$(VisualStudioVersion)' != '10.0' and '@(_MSBuildProjectReferenceExistent)' != '') was evaluated as ('' == 'true' and '' != '' and ('true' == 'true' or 'true' != 'true') and '12.0' != '10.0' and '' != ''). Task "MSBuild" skipped, due to false condition; ('%(_MSBuildProjectReferenceExistent.BuildReference)' == 'true' and '@(ProjectReferenceWithConfiguration)' != '' and ('$(BuildingInsideVisualStudio)' == 'true' or '$(BuildProjectReferences)' != 'true') and '$(VisualStudioVersion)' == '10.0' and '@(_MSBuildProjectReferenceExistent)' != '') was evaluated as ('' == 'true' and '' != '' and ('true' == 'true' or 'true' != 'true') and '12.0' == '10.0' and '' != ''). Task "MSBuild" skipped, due to false condition; ('%(_MSBuildProjectReferenceExistent.BuildReference)' == 'true' and '@(ProjectReferenceWithConfiguration)' != '' and '$(BuildingInsideVisualStudio)' != 'true' and '$(BuildProjectReferences)' == 'true' and '@(_MSBuildProjectReferenceExistent)' != '') was evaluated as ('' == 'true' and '' != '' and 'true' != 'true' and 'true' == 'true' and '' != ''). Task "MSBuild" skipped, due to false condition; ('%(_MSBuildProjectReferenceExistent.BuildReference)' == 'true' and '@(ProjectReferenceWithConfiguration)' != '' and '$(BuildingProject)' == 'true' and '@(_MSBuildProjectReferenceExistent)' != '') was evaluated as ('' == 'true' and '' != '' and 'true' == 'true' and '' != ''). Task "Warning" skipped, due to false condition; ('@(ProjectReferenceWithConfiguration)' != '' and '@(_MSBuildProjectReferenceNonexistent)' != '') was evaluated as ('' != '' and '' != ''). Done building target "ResolveProjectReferences" in project "ConsoleApplication3.fsproj". Target "FindInvalidProjectReferences" skipped, due to false condition; ('$(FindInvalidProjectReferences)' == 'true') was evaluated as ('' == 'true'). Target "ResolveNativeReferences" skipped, due to false condition; ('@(NativeReference)'!='') was evaluated as (''!=''). Target "GetFrameworkPaths" skipped. Previously built successfully. Target "GetReferenceAssemblyPaths" skipped. Previously built successfully. Target "PrepareForBuild" skipped. Previously built successfully. Target "GetInstalledSDKLocations" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResolveSDKReferences" depends on it): Task "GetInstalledSDKLocations" skipped, due to false condition; ('@(SDKReference)' != '') was evaluated as ('' != ''). Done building target "GetInstalledSDKLocations" in project "ConsoleApplication3.fsproj". Target "ResolveSDKReferences" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResolveAssemblyReferences" depends on it): Task "ResolveSDKReference" skipped, due to false condition; ('@(SDKReference)'!='') was evaluated as (''!=''). Done building target "ResolveSDKReferences" in project "ConsoleApplication3.fsproj". Target "ResolveSDKReferences" skipped. Previously built successfully. Target "ExpandSDKReferences" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResolveAssemblyReferences" depends on it): Task "GetSDKReferenceFiles" skipped, due to false condition; ('@(ResolvedSDKReference)'!='') was evaluated as (''!=''). Done building target "ExpandSDKReferences" in project "ConsoleApplication3.fsproj". Target "ResolveAssemblyReferences" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResolveReferences" depends on it): Using "ResolveAssemblyReference" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "ResolveAssemblyReference" TargetFrameworkMoniker: .NETFramework,Version=v4.5.2 TargetFrameworkMonikerDisplayName: .NET Framework 4.5.2 TargetedRuntimeVersion: v4.0.30319 Assemblies: mscorlib FSharp.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Private = 'True' System System.Data System.Transactions System.Numerics System.Core AssemblyFiles: CandidateAssemblyFiles: TargetFrameworkDirectories: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\,C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\Facades\ InstalledAssemblyTables: IgnoreInstalledAssemblyTable: False SearchPaths: {CandidateAssemblyFiles} {HintPathFromItem} {TargetFrameworkDirectory} {Registry:Software\Microsoft.NETFramework,v4.5.2,AssemblyFoldersEx} {AssemblyFolders} {GAC} {RawFileName} bin\Debug\ AllowedAssemblyExtensions: .winmd .dll .exe AllowedRelatedFileExtensions: .pdb .xml .pri AppConfigFile: App.config AutoUnify: True CopyLocalDependenciesWhenParentReferenceInGac: True FindDependencies: True TargetProcessorArchitecture: msil StateFile: obj\Debug\ConsoleApplication3.fsprojResolveAssemblyReference.cache InstalledAssemblySubsetTables: IgnoreInstalledAssemblySubsetTable: False TargetFrameworkSubsets: FullTargetFrameworkSubsetNames: Full ProfileName: FullFrameworkFolders: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\ LatestTargetFrameworkDirectories: ProfileTablesLocation: Primary reference "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089". Resolved file path is "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\mscorlib.dll". Reference found at search path location "{TargetFrameworkDirectory}". For SearchPath "{TargetFrameworkDirectory}". Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\mscorlib.winmd", but it didn't exist. This reference is not "CopyLocal" because it's a prerequisite file. The ImageRuntimeVersion for this reference is "v4.0.30319". Primary reference "FSharp.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Resolved file path is "C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.4.0.0\FSharp.Core.dll". Reference found at search path location "{Registry:Software\Microsoft.NETFramework,v4.5.2,AssemblyFoldersEx}". For SearchPath "{TargetFrameworkDirectory}". Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\FSharp.Core.winmd", but it didn't exist. Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\FSharp.Core.dll", but it didn't exist. Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\FSharp.Core.exe", but it didn't exist. Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\Facades\FSharp.Core.winmd", but it didn't exist. Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\Facades\FSharp.Core.dll", but it didn't exist. Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\Facades\FSharp.Core.exe", but it didn't exist. For SearchPath "{Registry:Software\Microsoft.NETFramework,v4.5.2,AssemblyFoldersEx}". Considered AssemblyFoldersEx locations. Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.3.1.0\FSharp.Core.dll", but its name "FSharp.Core, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" didn't match. Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.3.0.0\FSharp.Core.dll", but its name "FSharp.Core, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" didn't match. Found related file "C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.4.0.0\FSharp.Core.xml". The ImageRuntimeVersion for this reference is "v4.0.30319". Primary reference "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089". Resolved file path is "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.dll". Reference found at search path location "{TargetFrameworkDirectory}". For SearchPath "{TargetFrameworkDirectory}". Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.winmd", but it didn't exist. This reference is not "CopyLocal" because it's a prerequisite file. The ImageRuntimeVersion for this reference is "v4.0.30319". Primary reference "System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089". Resolved file path is "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.Data.dll". Reference found at search path location "{TargetFrameworkDirectory}". For SearchPath "{TargetFrameworkDirectory}". Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.Data.winmd", but it didn't exist. This reference is not "CopyLocal" because it's a prerequisite file. The ImageRuntimeVersion for this reference is "v4.0.30319". Primary reference "System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089". Resolved file path is "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.Transactions.dll". Reference found at search path location "{TargetFrameworkDirectory}". For SearchPath "{TargetFrameworkDirectory}". Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.Transactions.winmd", but it didn't exist. This reference is not "CopyLocal" because it's a prerequisite file. The ImageRuntimeVersion for this reference is "v4.0.30319". Primary reference "System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089". Resolved file path is "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.Numerics.dll". Reference found at search path location "{TargetFrameworkDirectory}". For SearchPath "{TargetFrameworkDirectory}". Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.Numerics.winmd", but it didn't exist. This reference is not "CopyLocal" because it's a prerequisite file. The ImageRuntimeVersion for this reference is "v4.0.30319". Primary reference "System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089". Resolved file path is "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.Core.dll". Reference found at search path location "{TargetFrameworkDirectory}". For SearchPath "{TargetFrameworkDirectory}". Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.Core.winmd", but it didn't exist. This reference is not "CopyLocal" because it's a prerequisite file. The ImageRuntimeVersion for this reference is "v4.0.30319". AssemblyFoldersEx location: "{Registry:Software\Microsoft.NETFramework,v4.5.2,AssemblyFoldersEx}" C:\Program Files (x86)\Reference Assemblies\Microsoft\MSBuild\v14.0 C:\Program Files (x86)\Reference Assemblies\Microsoft\MSBuild\v12.0 C:\Program Files (x86)\Microsoft Web Tools\ReferenceAssemblies\14.0\ C:\Program Files (x86)\Microsoft Visual Studio 14.0\VSSDK\VisualStudioIntegration\Common\Assemblies\v4.0\ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ReferenceAssemblies\v4.5\ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\ C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\ C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.3.0.0\Type Providers\ C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.3.1.0\ C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.3.0.0\ C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.4.0.0\ C:\Program Files (x86)\Microsoft SDKs\Expression\Blend.NETFramework\v4.5\Prototyping\Libraries\ C:\Program Files (x86)\Microsoft SDKs\Expression\Blend.NETFramework\v4.5\Libraries\ C:\Program Files\Microsoft SDKs\Azure.NET SDK\v2.8\bin\plugins\Diagnostics\ C:\Program Files\Microsoft SDKs\Azure.NET SDK\v2.8\ref\Caching\ C:\Program Files (x86)\Microsoft WCF Data Services\5.6.4\bin.NETFramework\ C:\Program Files (x86)\Common Files\microsoft shared\VSTT\10.0\UITestExtensionPackages C:\Program Files\Reference Assemblies\Microsoft\VSTO40\v4.0.Framework\ C:\Program Files\Reference Assemblies\Microsoft\VSTA30\v9.0\ C:\Program Files\Reference Assemblies\Microsoft\VSTA30\v8.0\ C:\Program Files\Reference Assemblies\Microsoft\VSTA30\v10.0\ C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office14\ C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office12\ C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Common\ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ReferenceAssemblies\v4.0\ c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v4.0\ C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\ c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\ C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Itanium\
C:\Program Files (x86)\Reference Assemblies\Microsoft\VBPowerPacks\v10.0\ c:\Program Files (x86)\Microsoft SQL Server\120\DTS\Tasks c:\Program Files (x86)\Microsoft SQL Server\120\DTS\PipelineComponents\ c:\Program Files (x86)\Microsoft SQL Server\120\DTS\ForEachEnumerators c:\Program Files (x86)\Microsoft SQL Server\120\DTS\Connections\ C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\WorkflowActivities\ C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\WorkflowActivities\ C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\ C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\ C:\Program Files (x86)\Microsoft SDKs\RIA Services\v1.0\Libraries\Server\ c:\Program Files (x86)\Microsoft Visual Studio 10.0\ReportViewer\ c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\ c:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\ C:\Program Files (x86)\GtkSharp\2.12\lib\Mono.Posix C:\Program Files (x86)\GtkSharp\2.12\lib\Mono.Cairo C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v4.0\ C:\Program Files (x86)\GtkSharp\2.12\lib\gtk-sharp-2.0 C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.3.0.0\Type Providers\ C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.3.1.0\ C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.3.0.0\ C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.4.0.0\ C:\Program Files (x86)\Microsoft SDKs\Expression\Blend.NETFramework\v4.0\Prototyping\Libraries\ C:\Program Files (x86)\Microsoft SDKs\Expression\Blend.NETFramework\v4.0\Libraries\ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VSTSDB\ C:\Program Files\Windows Azure AppFabric SDK\V1.0\Assemblies\NET4.0\ C:\Program Files\Windows Azure AppFabric SDK\V1.0\Assemblies\NET3.5\ C:\Program Files\Reference Assemblies\Microsoft\Microsoft Identity Extensions\1.0\ C:\Program Files (x86)\WiX Toolset v3.10\SDK\ C:\Program Files\Reference Assemblies\Microsoft\VSTO40\v9.0\ C:\Program Files\Reference Assemblies\Microsoft\VSTO40\v10.0\ C:\Program Files\Reference Assemblies\Microsoft\VSTA30\v9.0\ C:\Program Files\Reference Assemblies\Microsoft\VSTA30\v10.0\ C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office14\ C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office12\ C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Common\ C:\Program Files (x86)\Microsoft Visual Studio 14.0\VSSDK\VisualStudioIntegration\Common\Assemblies\v2.0\ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ReferenceAssemblies\v2.0\ c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\ C:\Program Files (x86)\Reference Assemblies\Microsoft\VBPowerPacks\v10.0\ c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\ C:\Program Files (x86)\Microsoft SDKs\Microsoft Sync Framework\v1.0\Runtime\ADO.NET\V2.0\x64\ C:\Program Files\Microsoft SDKs\Azure.NET SDK\v2.8\ref c:\Program Files (x86)\Microsoft Visual Studio 10.0\ReportViewer\ C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\ C:\Program Files (x86)\Microsoft Chart Controls\Assemblies C:\Program Files (x86)\Microsoft SDKs\Microsoft Sync Framework\v1.0\Runtime\x86\ C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v2.0\2.3.0.0\ C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 2\Assemblies\ c:\Program Files\Microsoft SQL Server\120\DTS\Tasks c:\Program Files\Microsoft SQL Server\120\DTS\PipelineComponents\ c:\Program Files\Microsoft SQL Server\120\DTS\ForEachEnumerators c:\Program Files\Microsoft SQL Server\120\DTS\Connections\ C:\Program Files\Windows Azure AppFabric SDK\V1.0\Assemblies\NET4.0\ C:\Program Files\Windows Azure AppFabric SDK\V1.0\Assemblies\NET3.5\ C:\Program Files\Microsoft SDKs\Azure.NET SDK\v2.8\ref Done executing task "ResolveAssemblyReference". Done building target "ResolveAssemblyReferences" in project "ConsoleApplication3.fsproj". Target "GenerateBindingRedirects" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResolveReferences" depends on it): Building target "GenerateBindingRedirects" completely. Output file "obj\Debug\ConsoleApplication3.fsproj.ConsoleApplication3.exe.config" does not exist. Using "GenerateBindingRedirects" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "GenerateBindingRedirects" No suggested binding redirects from ResolveAssemblyReferences. Done executing task "GenerateBindingRedirects". Done building target "GenerateBindingRedirects" in project "ConsoleApplication3.fsproj". Target "GenerateBindingRedirectsUpdateAppConfig" skipped, due to false condition; ('$(AutoGenerateBindingRedirects)' == 'true' and '$(GenerateBindingRedirectsOutputType)' == 'true' and Exists('$(_GenerateBindingRedirectsIntermediateAppConfig)')) was evaluated as ('true' == 'true' and 'true' == 'true' and Exists('obj\Debug\ConsoleApplication3.fsproj.ConsoleApplication3.exe.config')). Target "ResolveComReferences" skipped, due to false condition; ('@(COMReference)'!='' or '@(COMFileReference)'!='') was evaluated as (''!='' or ''!=''). Target "AfterResolveReferences" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResolveReferences" depends on it): Done building target "AfterResolveReferences" in project "ConsoleApplication3.fsproj". Target "GetReferenceAssemblyPaths" skipped. Previously built successfully. Target "ImplicitlyExpandDesignTimeFacades" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.NetFramework.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResolveReferences" depends on it): Task "Message" skipped, due to false condition; ('%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandDesignTimeFacades') was evaluated as ('{Registry:Software\Microsoft.NETFramework,v4.5.2,AssemblyFoldersEx}' == 'ImplicitlyExpandDesignTimeFacades'). Task "Message" skipped, due to false condition; ('%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandDesignTimeFacades') was evaluated as ('{TargetFrameworkDirectory}' == 'ImplicitlyExpandDesignTimeFacades'). Done building target "ImplicitlyExpandDesignTimeFacades" in project "ConsoleApplication3.fsproj". Target "ResolveReferences" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "CoreBuild" depends on it): Done building target "ResolveReferences" in project "ConsoleApplication3.fsproj". Target "ValidationExtension" in file "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.WorkflowBuildExtensions.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "PrepareResources" depends on it): Task "WorkflowBuildMessageTask" skipped, due to false condition; ('$(SkipWorkflowValidation)'!='' and '$(SkipWorkflowValidation)'!='true' and '$(SkipWorkflowValidation)'!='false') was evaluated as (''!='' and ''!='true' and ''!='false'). Done building target "ValidationExtension" in project "ConsoleApplication3.fsproj". Target "ExpressionBuildExtension" in file "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.WorkflowBuildExtensions.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "PrepareResources" depends on it): Task "WorkflowBuildMessageTask" skipped, due to false condition; ('$(DisableWorkflowCompiledExpressions)'!='' and '$(DisableWorkflowCompiledExpressions)'!='true' and '$(DisableWorkflowCompiledExpressions)'!='false') was evaluated as (''!='' and ''!='true' and ''!='false'). Done building target "ExpressionBuildExtension" in project "ConsoleApplication3.fsproj". Target "XamlMarkupCompilePass1" skipped, due to false condition; ('@(XamlPage)' != '' or '@(XamlAppDef)' != '') was evaluated as ('' != '' or '' != ''). Target "XamlMarkupCompileReadGeneratedFileList" skipped, due to false condition; ('@(XamlPage)' != '' or '@(XamlAppDef)' != '') was evaluated as ('' != '' or '' != ''). Target "XamlMarkupCompileAddFilesGenerated" skipped, due to false condition; ('@(XamlPage)' != '' or '@(XamlAppDef)' != '') was evaluated as ('' != '' or '' != ''). Target "XamlMarkupCompilePass2" skipped, due to false condition; ('$(XamlRequiresCompilationPass2)' == 'true' ) was evaluated as ('false' == 'true' ). Target "XamlMarkupCompileReadPass2Flag" skipped, due to false condition; ('@(XamlPage)' != '' or '@(XamlAppDef)' != '') was evaluated as ('' != '' or '' != ''). Target "XamlMarkupCompileAddExtensionFilesGenerated" skipped, due to false condition; ('@(XamlPage)' != '' or '@(XamlAppDef)' != '') was evaluated as ('' != '' or '' != ''). Target "AddDeferredValidationErrorsFileToFileWrites" skipped, due to false condition; (Exists('$(DeferredValidationErrorsFileName)')) was evaluated as (Exists('obj\Debug\AC2C1ABA-CCF6-44D4-8127-588FD4D0A860-DeferredValidationErrors.xml')). Target "ReportValidationBuildExtensionErrors" skipped, due to false condition; ('$(SkipWorkflowValidation)' != 'true' and ('@(XamlPage)' != '' or '@(XamlAppDef)' != '')) was evaluated as ('' != 'true' and ('' != '' or '' != '')). Target "MarkupCompilePass1" skipped, due to false condition; ('@(Page)' != '' or '@(ApplicationDefinition)' != '' ) was evaluated as ('' != '' or '' != '' ). Target "AfterMarkupCompilePass1" in file "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.WinFx.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "PrepareResources" depends on it): Done building target "AfterMarkupCompilePass1" in project "ConsoleApplication3.fsproj". Target "MarkupCompilePass2ForMainAssembly" skipped, due to false condition; ('$(_RequireMCPass2ForMainAssembly)' == 'true' ) was evaluated as ('false' == 'true' ). Target "FileClassification" in file "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.WinFx.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "PrepareResources" depends on it): Task "FileClassifier" skipped, due to false condition; ('@(GeneratedBaml)' != '' or '@(Resource)' != '' or '@(Font)' != '') was evaluated as ('' != '' or '' != '' or '' != ''). Task "Message" skipped, due to false condition; ('$(MSBuildTargetsVerbose)'=='true') was evaluated as (''=='true'). Task "Message" skipped, due to false condition; ('$(MSBuildTargetsVerbose)'=='true') was evaluated as (''=='true'). Done building target "FileClassification" in project "ConsoleApplication3.fsproj". Target "MainResourcesGeneration" skipped, due to false condition; ('@(MainEmbeddedFiles)' != '') was evaluated as ('' != ''). Target "AssignWinFXEmbeddedResource" skipped, due to false condition; ('@(WinFXEmbeddedResource)' != '') was evaluated as ('' != ''). Target "AssignTargetPaths" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "PrepareResourceNames" depends on it): Using "AssignTargetPath" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "AssignTargetPath" Done executing task "AssignTargetPath". Task "AssignTargetPath" Done executing task "AssignTargetPath". Task "AssignTargetPath" Done executing task "AssignTargetPath". Task "AssignTargetPath" Done executing task "AssignTargetPath". Task "AssignTargetPath" skipped, due to false condition; ('@(_DeploymentBaseManifestWithTargetPath)'=='' and '%(None.Extension)'=='.manifest') was evaluated as (''=='' and '.config'=='.manifest'). Done building target "AssignTargetPaths" in project "ConsoleApplication3.fsproj". Target "AssignTargetPaths" skipped. Previously built successfully. Target "SplitResourcesByCulture" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "PrepareResourceNames" depends on it): Task "Warning" skipped, due to false condition; ('@(ResxWithNoCulture)'!='') was evaluated as (''!=''). Task "Warning" skipped, due to false condition; ('@(ResxWithCulture)'!='') was evaluated as (''!=''). Task "Warning" skipped, due to false condition; ('@(NonResxWithCulture)'!='') was evaluated as (''!=''). Task "Warning" skipped, due to false condition; ('@(NonResxWithNoCulture)'!='') was evaluated as (''!=''). Using "AssignCulture" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "AssignCulture" Done executing task "AssignCulture". Done building target "SplitResourcesByCulture" in project "ConsoleApplication3.fsproj". Target "CreateManifestResourceNames" skipped, due to false condition; ('@(EmbeddedResource)' != '') was evaluated as ('' != ''). Target "CreateCustomManifestResourceNames" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "PrepareResourceNames" depends on it): Done building target "CreateCustomManifestResourceNames" in project "ConsoleApplication3.fsproj". Target "PrepareResourceNames" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "PrepareResources" depends on it): Done building target "PrepareResourceNames" in project "ConsoleApplication3.fsproj". Target "ResolveAssemblyReferences" skipped. Previously built successfully. Target "SplitResourcesByCulture" skipped. Previously built successfully. Target "BeforeResGen" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResGen" depends on it): Done building target "BeforeResGen" in project "ConsoleApplication3.fsproj". Target "CoreResGen" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResGen" depends on it): Task "GenerateResource" skipped, due to false condition; ('%(EmbeddedResource.Type)' == 'Resx' and '%(EmbeddedResource.GenerateResource)' != 'false' and '$(GenerateResourceMSBuildRuntime)' != 'CLR2') was evaluated as ('' == 'Resx' and '' != 'false' and 'CurrentRuntime' != 'CLR2'). Task "GenerateResource" skipped, due to false condition; ('%(EmbeddedResource.Type)' == 'Resx' and '%(EmbeddedResource.GenerateResource)' != 'false' and '$(GenerateResourceMSBuildRuntime)' == 'CLR2') was evaluated as ('' == 'Resx' and '' != 'false' and 'CurrentRuntime' == 'CLR2'). Done building target "CoreResGen" in project "ConsoleApplication3.fsproj". Target "AfterResGen" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "ResGen" depends on it): Done building target "AfterResGen" in project "ConsoleApplication3.fsproj". Target "ResGen" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "PrepareResources" depends on it): Done building target "ResGen" in project "ConsoleApplication3.fsproj". Target "CompileLicxFiles" skipped, due to false condition; ('@(_LicxFile)'!='') was evaluated as (''!=''). Target "PrepareResources" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "CoreBuild" depends on it): Done building target "PrepareResources" in project "ConsoleApplication3.fsproj". Target "ResolveKeySource" skipped, due to false condition; ($(SignManifests) == 'true' or $(SignAssembly) == 'true') was evaluated as ( == 'true' or == 'true'). Target "ResolveReferences" skipped. Previously built successfully. Target "ResolveKeySource" skipped, due to false condition; ($(SignManifests) == 'true' or $(SignAssembly) == 'true') was evaluated as ( == 'true' or == 'true'). Target "ResolveComReferences" skipped, due to false condition; ('@(COMReference)'!='' or '@(COMFileReference)'!='') was evaluated as (''!='' or ''!=''). Target "ResolveNativeReferences" skipped, due to false condition; ('@(NativeReference)'!='') was evaluated as (''!=''). Target "_SetExternalWin32ManifestProperties" skipped, due to false condition; ('$(GenerateClickOnceManifests)'=='true' or '@(NativeReference)'!='' or '@(ResolvedIsolatedComModules)'!='') was evaluated as (''=='true' or ''!='' or ''!=''). Target "_SetEmbeddedWin32ManifestProperties" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "SetWin32ManifestProperties" depends on it): Using "GetFrameworkPath" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "GetFrameworkPath" Done executing task "GetFrameworkPath". Done building target "_SetEmbeddedWin32ManifestProperties" in project "ConsoleApplication3.fsproj". Target "SetWin32ManifestProperties" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "Compile" depends on it): Done building target "SetWin32ManifestProperties" in project "ConsoleApplication3.fsproj". Target "_GenerateCompileInputs" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "Compile" depends on it): Task "Warning" skipped, due to false condition; ('@(ManifestResourceWithNoCulture)'!='' and '%(ManifestResourceWithNoCulture.EmittedForCompatibilityOnly)'=='') was evaluated as (''!='' and ''==''). Task "Warning" skipped, due to false condition; ('@(ManifestNonResxWithNoCultureOnDisk)'!='' and '%(ManifestNonResxWithNoCultureOnDisk.EmittedForCompatibilityOnly)'=='') was evaluated as (''!='' and ''==''). Done building target "_GenerateCompileInputs" in project "ConsoleApplication3.fsproj". Target "GenerateAdditionalSources" skipped, due to false condition; ('@(AssemblyAttributes)' != '' and '$(GenerateAdditionalSources)' == 'true') was evaluated as ('' != '' and '' == 'true'). Target "PrepareForBuild" skipped. Previously built successfully. Target "GetReferenceAssemblyPaths" skipped. Previously built successfully. Target "GenerateTargetFrameworkMonikerAttribute" in file "C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.Targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "BeforeCompile" depends on it): Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files. Input files: C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.Targets Output files: C:\Users\robert\AppData\Local\Temp.NETFramework,Version=v4.5.2.AssemblyAttributes.fs Done building target "GenerateTargetFrameworkMonikerAttribute" in project "ConsoleApplication3.fsproj". Target "BeforeCompile" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "Compile" depends on it): Done building target "BeforeCompile" in project "ConsoleApplication3.fsproj". Target "_TimeStampBeforeCompile" skipped, due to false condition; ('$(RunPostBuildEvent)'=='OnOutputUpdated' or ('$(RegisterForComInterop)'=='true' and '$(OutputType)'=='library')) was evaluated as (''=='OnOutputUpdated' or (''=='true' and 'Exe'=='library')). Target "GenerateCompiledExpressionsTempFile" skipped, due to false condition; ('$(GenerateCompiledExpressionsTempFilePathForEditing)' != '') was evaluated as ('' != ''). Target "DesignTimeXamlMarkupCompilation" in file "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Xaml.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "CoreCompile" depends on it): Task "MakeDir" skipped, due to false condition; ('@(XamlAppDef)' != '') was evaluated as ('' != ''). Task "CallTarget" skipped, due to false condition; ('$(BuildingProject)' != 'true' and '@(XamlAppDef)' != '') was evaluated as ('true' != 'true' and '' != ''). Done building target "DesignTimeXamlMarkupCompilation" in project "ConsoleApplication3.fsproj". Target "CleanInProcessXamlGeneratedFiles" skipped, due to false condition; ('@(XamlAppDef)' != '') was evaluated as ('' != ''). Target "DesignTimeMarkupCompilation" in file "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.WinFx.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "CoreCompile" depends on it): Task "CallTarget" skipped, due to false condition; ('$(BuildingProject)' != 'true') was evaluated as ('true' != 'true'). Done building target "DesignTimeMarkupCompilation" in project "ConsoleApplication3.fsproj". Target "_ComputeNonExistentFileProperty" skipped, due to false condition; (('$(BuildingInsideVisualStudio)' == 'true') and ('$(BuildingOutOfProcess)' != 'true') and (('$(BuildingProject)' == 'false') or ('$(UseHostCompilerIfAvailable)' == 'true'))) was evaluated as (('true' == 'true') and ('' != 'true') and (('true' == 'false') or ('' == 'true'))). Target "CoreCompile" in file "C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.Targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "Compile" depends on it): Building target "CoreCompile" completely. Input file "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" is newer than output file "bin\Debug\ConsoleApplication3.XML". Task "Error" skipped, due to false condition; ('$(SilverlightVersion)' != '' and '$(SilverlightVersion)' != 'v5.0') was evaluated as ('' != '' and '' != 'v5.0'). Task "Warning" skipped, due to false condition; ('$(Win32ResourceFile)' != '' ) was evaluated as ('' != '' ). Using "Fsc" task from assembly "C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\FSharp.Build.dll". Task "Fsc" The "Fsc" task could not be instantiated from the assembly "C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\FSharp.Build.dll". Please verify the task assembly has been built using the same version of the Microsoft.Build.Framework assembly as the one installed on your computer and that your host application is not missing a binding redirect for Microsoft.Build.Framework. Unable to cast object of type 'Microsoft.FSharp.Build.Fsc' to type 'Microsoft.Build.Framework.ITask'. The "Fsc" task has been declared or used incorrectly, or failed during construction. Check the spelling of the task name and the assembly name. Done executing task "Fsc" -- FAILED. Done building target "CoreCompile" in project "ConsoleApplication3.fsproj" -- FAILED. Target "_CheckForCompileOutputs" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "_CleanGetCurrentAndPriorFileWrites" depends on it): Done building target "_CheckForCompileOutputs" in project "ConsoleApplication3.fsproj". Target "_SGenCheckForOutputs" skipped, due to false condition; ('$(_SGenGenerateSerializationAssembliesConfig)' == 'On' or ('@(WebReferenceUrl)'!='' and '$(_SGenGenerateSerializationAssembliesConfig)' == 'Auto')) was evaluated as ('Off' == 'On' or (''!='' and 'Off' == 'Auto')). Target "_CleanGetCurrentAndPriorFileWrites" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "_CleanRecordFileWrites" depends on it): Using "ReadLinesFromFile" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "ReadLinesFromFile" Done executing task "ReadLinesFromFile". Using "ConvertToAbsolutePath" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "ConvertToAbsolutePath" Done executing task "ConvertToAbsolutePath". Using "FindUnderPath" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "FindUnderPath" Comparison path is "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3". Done executing task "FindUnderPath". Task "FindUnderPath" Comparison path is "bin\Debug\". Done executing task "FindUnderPath". Task "FindUnderPath" Comparison path is "obj\Debug\". Done executing task "FindUnderPath". Using "RemoveDuplicates" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "RemoveDuplicates" Done executing task "RemoveDuplicates". Done building target "_CleanGetCurrentAndPriorFileWrites" in project "ConsoleApplication3.fsproj". Target "_CleanRecordFileWrites" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\robert\Documents\Visual Studio 2015\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.fsproj" (target "CoreBuild" depends on it): Task "RemoveDuplicates" Done executing task "RemoveDuplicates". Task "MakeDir" Done executing task "MakeDir". Using "WriteLinesToFile" task from assembly "Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Task "WriteLinesToFile" Done executing task "WriteLinesToFile". Done building target "_CleanRecordFileWrites" in project "ConsoleApplication3.fsproj". Done building project "ConsoleApplication3.fsproj" -- FAILED. Build FAILED. ";}

rneatherway commented 8 years ago

It seems as though it might be choosing the DLLs for MSBuild v12, but preferring to set VisualStudioVersion to 14 and that might be causing problems.

Which versions of VS do you have installed currently?

You said:

This means FSharpTargetsPath will be empty, because VS version is 14.0 and my Fsharp targets file is at C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.targets

but I find the targets file at C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\FSharp as expected, do you not have it there or at the v14.0 path? ($(MSBuildExtensionsPath32) will be C:\Program Files (x86)\MSBuild).

rneatherway commented 8 years ago

One oddity I see in your log is the failure to cast the Fsc task to the correct type, which works on my machine (VS2013). However, we should fix the first problem (FSharpTargetsPath) first, as it may be related and it more serious. Even if the "build" fails as it did in your case normally you still get good references back, and in fact it does look like you did so I am very surprised there was still a compilation error. Are you sure you are using the latest version of FsAutoComplete and ProjectCrackerTool?

Task "Fsc"
C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\fsc.exe -o:obj\Debug\ConsoleApplica
tion3.exe -g --debug:full --noframework --define:DEBUG --define:TRACE --doc:bin\Debug\ConsoleAp
plication3.XML --optimize- --tailcalls- --platform:anycpu32bitpreferred -r:C:\Windows\Microsoft
.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll -r:C:\Windows\Microso
ft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll -r:C:\Windo
ws\Microsoft.Net\assembly\GAC_64\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll -r:
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll -r:
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Numerics\v4.0_4.0.0.0__b77a5c561934e089\Syste
m.Numerics.dll -r:C:\Windows\Microsoft.Net\assembly\GAC_64\System.Transactions\v4.0_4.0.0.0__b7
7a5c561934e089\System.Transactions.dll --target:exe --warn:3 --warnaserror:76 --fullpaths --fla
terrors --subsystemversion:6.00 --highentropyva+ "C:\Users\robnea\AppData\Local\Temp\.NETFramew
ork,Version=v4.5.2.AssemblyAttributes.fs" AssemblyInfo.fs Program.fs
Done executing task "Fsc".
rojepp commented 8 years ago

On this computer I have VS2010 (for a legacy project) and VS2015. I don't know where it gets v12.0 (VS2013) from..

but I find the targets file at C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\FSharp as expected, do you not have it there or at the v14.0 path? ($(MSBuildExtensionsPath32) will be C:\Program Files (x86)\MSBuild).

I have the .targets file at C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\FSharp but as you said, ProjectCracker seems to choose v12.0 instead of v14.0, and can't find it. It warns of it:

Project file contains ToolsVersion="14.0". This toolset may be unknown or missing, in which case you may be able to resolve this by installing the appropriate version of MSBuild, or the build may have been forced to a particular ToolsVersion for policy reasons. Treating the project as if it had ToolsVersion="12.0".

Very odd. Just to be clear, the build doesn't fail. I see this error (missing types, ie System.Data in many of my projects, but they build in Fake and VS.

rojepp commented 8 years ago

I'm using whatever version of FsAutoComplete/ProjectCracker that ship with VSCode/Atom extensions. FsAutoComplete.exe has a file version of 0.27.3.0. ProjectCracker doesn't have versioning information.

rneatherway commented 8 years ago

The ProjectCracker links against v12 and uses a backup redirect to v14 if that isn't available, but if you don't have v12 then it should certainly end up using v14. I have a VM with just VS2015 so will see if I can repro there.

Very odd. Just to be clear, the build doesn't fail. I see this error (missing types, ie System.Data in many of my projects, but they build in Fake and VS.

Yes, I just mean the fake build that ProjectCracker does.

rneatherway commented 8 years ago

I have the .targets file at C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\FSharp but as you said, ProjectCracker seems to choose v12.0 instead of v14.0, and can't find it. It warns of it:

The selection of the MSBuild dlls and the VisualStudioVersion is completely separate. It looks like ProjectCracker is using v12 dlls, but you said you don't have them installed? Did you ever have VS2013 on this machine? Or install the MSBuild standalone pack?

I can't reproduce this behaviour on my VM, but I would really like to get this fixed. Can you try running a patched version? The first thing to check would be to print out the VisualStudioVersion that ProjectCracker decides on.

rojepp commented 8 years ago

I'd be happy to, but it will have to wait until next week. Mini vacation coming up.

rneatherway commented 8 years ago

OK, thanks.

rojepp commented 8 years ago

I have raised an issue with FCS, and sent a PR for it as well. Please take a look. https://github.com/fsharp/FSharp.Compiler.Service/pull/566