dotnet / msbuild

The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
https://docs.microsoft.com/visualstudio/msbuild/msbuild
MIT License
5.17k stars 1.34k forks source link

Properly support versioning of references without relying on HintPath #3723

Open directhex opened 5 years ago

directhex commented 5 years ago

Steps to reproduce

Consider a case where you have two versions of the same assembly (apt install gtk-sharp2 gtk-sharp3), with wildly different API/ABI, both installed in the GAC:

directhex@bionicvm:~/Projects/msbuildissue$ gacutil -l gtk-sharp
The following assemblies are installed into the GAC:
gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f
gtk-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f
Number of items = 2

And a very simple project which depends on the API in the LOWER VERSIONED library:

directhex@Josephs-MBP:/tmp/msbuildissue$ cat code.cs 
using Gtk;
using System;
class Hello {
        static void Main()
        {
                Application.Init ();
                Window window = new Window ("helloworld");
                window.Show();
                Application.Run ();
        }
}
directhex@Josephs-MBP:/tmp/msbuildissue$ cat msbuildissue.csproj 
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition ="'$(Configuration)' == ''">Debug</Configuration>
    <Platform Condition ="'$(Platform)' == ''">AnyCPU</Platform>
    <ProjectGuid>{D1FFA0DC-0ACC-4108-ADC1-2A71122C09AF}</ProjectGuid>
    <OutputPath>bin\$(Configuration)\</OutputPath>
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
      <Package>glib-sharp-2.0</Package>
    </Reference>
    <Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
      <Package>gtk-sharp-2.0</Package>
    </Reference>
  </ItemGroup>  
  <ItemGroup>
    <Compile Include="code.cs" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Expected behavior

Clearly, the assembly references there are using the full versioned signature of the desired library, so that's the assembly which should be used when building

Actual behavior

directhex@bionicvm:~/Projects/msbuildissue$ msbuild 
Microsoft (R) Build Engine version 15.1.8.0 ( Wed Sep  5 19:27:37 UTC 2018) for Mono
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 9/8/2018 8:14:07 AM.
Project "/home/directhex/Projects/msbuildissue/msbuildissue.csproj" on node 1 (default targets).
PrepareForBuild:
  Creating directory "bin/Debug/".
  Creating directory "obj/Debug/".
CoreCompile:
  /usr/lib/mono/msbuild/15.0/bin/Roslyn/csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /platform:anycpu32bitpreferred /highentropyva+ /reference:/usr/lib/mono/gac/glib-sharp/3.0.0.0__35e10195dab3c99f/glib-sharp.dll /reference:/usr/lib/mono/gac/gtk-sharp/3.0.0.0__35e10195dab3c99f/gtk-sharp.dll /reference:/usr/lib/mono/4.6.1-api/mscorlib.dll /reference:/usr/lib/mono/4.6.1-api/System.Core.dll /reference:/usr/lib/mono/4.6.1-api/System.dll /debug:portable /out:obj/Debug/msbuildissue.exe /subsystemversion:6.00 /target:exe /utf8output code.cs "/tmp/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs"
code.cs(8,29): error CS0012: The type 'Application' is defined in an assembly that is not referenced. You must add a reference to assembly 'gio-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f'. [/home/directhex/Projects/msbuildissue/msbuildissue.csproj]
code.cs(13,29): error CS0012: The type 'Application' is defined in an assembly that is not referenced. You must add a reference to assembly 'gio-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f'. [/home/directhex/Projects/msbuildissue/msbuildissue.csproj]
Done Building Project "/home/directhex/Projects/msbuildissue/msbuildissue.csproj" (default targets) -- FAILED.

Build FAILED.

"/home/directhex/Projects/msbuildissue/msbuildissue.csproj" (default target) (1) ->
(CoreCompile target) -> 
  code.cs(8,29): error CS0012: The type 'Application' is defined in an assembly that is not referenced. You must add a reference to assembly 'gio-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f'. [/home/directhex/Projects/msbuildissue/msbuildissue.csproj]
  code.cs(13,29): error CS0012: The type 'Application' is defined in an assembly that is not referenced. You must add a reference to assembly 'gio-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f'. [/home/directhex/Projects/msbuildissue/msbuildissue.csproj]

    0 Warning(s)
    2 Error(s)

Time Elapsed 00:00:01.60

Clearly, the assembly version is not being used correctly.

In the oldern days, Mono's MSBuild reimplementation, XBuild, worked around it using a standardized-ish mechanism for Linux software development called pkg-config. In the above csproj, the Package tags on the Reference mean "for this reference, consider the assemblies in the file $PKG_CONFIG_PATH/gtk-sharp-2.0.pc" and building with xbuild yields:

directhex@bionicvm:~/Projects/msbuildissue$ xbuild 

>>>> xbuild tool is deprecated and will be removed in future updates, use msbuild instead <<<<

XBuild Engine Version 14.0
Mono, Version 5.16.0.147
Copyright (C) 2005-2013 Various Mono authors

Build started 9/8/2018 8:14:47 AM.
__________________________________________________
Project "/home/directhex/Projects/msbuildissue/msbuildissue.csproj" (default target(s)):
    Target PrepareForBuild:
        Configuration: Debug Platform: AnyCPU
    Target GenerateSatelliteAssemblies:
    No input files were specified for target GenerateSatelliteAssemblies, skipping.
    Target CoreCompile:
        Tool /usr/lib/mono/4.5/csc.exe execution started with arguments: /noconfig /out:obj/Debug/msbuildissue.exe code.cs obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttribute.cs /target:exe /nostdlib /reference:/usr/lib/mono/4.6.1-api/System.dll /reference:/usr/lib/cli/glib-sharp-2.0/glib-sharp.dll /reference:/usr/lib/cli/gtk-sharp-2.0/gtk-sharp.dll /reference:/usr/lib/mono/4.6.1-api/System.Core.dll /reference:/usr/lib/mono/4.6.1-api//mscorlib.dll
        Microsoft (R) Visual C# Compiler version 2.8.2.62916 (2ad4aabc)
        Copyright (C) Microsoft Corporation. All rights reserved.
    Target DeployOutputFiles:
        Copying file from '/home/directhex/Projects/msbuildissue/obj/Debug/msbuildissue.exe' to '/home/directhex/Projects/msbuildissue/bin/Debug/msbuildissue.exe'
Done building project "/home/directhex/Projects/msbuildissue/msbuildissue.csproj".

Build succeeded.
     0 Warning(s)
     0 Error(s)

Time Elapsed 00:00:01.3920310

Those don't look like GAC paths, because they're not: they're the paths specified in the pkg-config file:

directhex@bionicvm:~$ cat /usr/lib/pkgconfig/gtk-sharp-2.0.pc 
prefix=${pcfiledir}/../..
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
gapidir=${prefix}/share/gapi-2.0

Name: Gtk#
Description: Gtk# - GNOME .NET Binding
Version: 2.12.45
Cflags: -I:${gapidir}/pango-api.xml -I:${gapidir}/atk-api.xml -I:${gapidir}/gdk-api.xml -I:${gapidir}/gtk-api.xml
Libs: -r:${libdir}/cli/pango-sharp-2.0/pango-sharp.dll -r:${libdir}/cli/atk-sharp-2.0/atk-sharp.dll -r:${libdir}/cli/gdk-sharp-2.0/gdk-sharp.dll -r:${libdir}/cli/gtk-sharp-2.0/gtk-sharp.dll
Requires: glib-sharp-2.0

I'm not saying MSBuild should support XBuild's pkg-config extension (although that WOULD fix the issue, and it's right there in Mono.XBuild.Tasks ready for the grabbing). But one way or another, installing library X+1 should not completely break support for using library X.

HintPath "works", but is a dreadful solution, since the full HintPath is not consistent across operating systems - OSX, Ubuntu, Fedora, etc, all put the relevant files in different places. Which prevents cross-platform collaboration.

Environment data

msbuild /version output:

directhex@bionicvm:~$ msbuild /version
Microsoft (R) Build Engine version 15.1.8.0 ( Wed Sep  5 19:27:37 UTC 2018) for Mono
Copyright (C) Microsoft Corporation. All rights reserved.

15.1.8.0

OS info: Ubuntu 18.04, but really, it's not OS-specific.

If applicable, version of the tool that invokes MSBuild (Visual Studio, dotnet CLI, etc): Any. But this is particularly frustrating in VS for Mac - you cannot develop a Gtk#2 application (like VS for Mac) if you install Gtk#3

rainersigwald commented 5 years ago

I make no claims that this is intuitive or even reasonable, but this is the documented behavior.

The fix is to set SpecificVersion metadata on the reference

    <Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
      <Package>glib-sharp-2.0</Package>
      <SpecificVersion>true</SpecificVersion>
    </Reference>

Sadly, I don't think we can make that the new default even though it makes much more sense to me, too. I'm sure many people depend on the current behavior without knowing it--the most likely scenario I can think of is referencing Framework assemblies with a strong name referring to an old framework version, then updating the target version--it'd continue to work, when really the versions of references should have been changed.

directhex commented 5 years ago

Nope.

directhex@bubblegum:/tmp$ msbuild msbuildissue.csproj /v:d
Microsoft (R) Build Engine version 15.6.0.0 ( Thu May 10 14:00:26 UTC 2018) for Mono
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 10/09/2018 19:14:20.
Property reassignment: $(MSBuildProjectExtensionsPath)="/tmp/obj/" (previous value: "obj/") at /usr/lib/mono/xbuild/15.0/Microsoft.Common.props (58,5)
Property reassignment: $(Language)="C#" (previous value: "en_GB:en") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets (40,9)
Property reassignment: $(_ConfigurationNameTmp)="Debug" (previous value: "") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.Mono.targets (43,9)
Property reassignment: $(MSBuildAllProjects)=";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props" (previous value: ";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props (29,5)
Property reassignment: $(_DebugFileExt)=".pdb" (previous value: "") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets (130,5)
Property reassignment: $(_DebugSymbolsProduced)="true" (previous value: "false") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets (158,5)
Property reassignment: $(_DocumentationFileProduced)="false" (previous value: "true") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets (163,5)
Property reassignment: $(AutoUnifyAssemblyReferences)="false" (previous value: "true") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets (336,5)
Property reassignment: $(ProcessorArchitecture)="msil" (previous value: "") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets (492,5)
Property reassignment: $(DelaySign)="" (previous value: "false") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets (531,5)
Property reassignment: $(MSBuildAllProjects)=";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" (previous value: ";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets (542,5)
Property reassignment: $(MSBuildAllProjects)=";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets" (previous value: ";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets (29,6)
Property reassignment: $(ResolveReferencesDependsOn)="

      BeforeResolveReferences;
      AssignProjectConfiguration;
      ResolveProjectReferences;
      FindInvalidProjectReferences;
      ResolveNativeReferences;
      ResolveAssemblyReferences;
      GenerateBindingRedirects;
      ResolveComReferences;
      AfterResolveReferences
    ;
      ImplicitlyExpandDesignTimeFacades
    " (previous value: "
      BeforeResolveReferences;
      AssignProjectConfiguration;
      ResolveProjectReferences;
      FindInvalidProjectReferences;
      ResolveNativeReferences;
      ResolveAssemblyReferences;
      GenerateBindingRedirects;
      ResolveComReferences;
      AfterResolveReferences
    ") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets (79,5)
Property reassignment: $(GenerateManifestsDependsOn)="" (previous value: "
      SetWin32ManifestProperties;
      GenerateApplicationManifest;
      GenerateDeploymentManifest
    ") at /usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.Mono.targets (24,9)
Property reassignment: $(MSBuildAllProjects)=";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/NuGet.targets" (previous value: ";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets") at /usr/lib/mono/msbuild/15.0/bin/NuGet.targets (45,5)
Property reassignment: $(MSBuildAllProjects)=";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/NuGet.targets;/usr/lib/mono/xbuild/15.0/Microsoft.Common.targets/ImportAfter/Microsoft.NET.Build.Extensions.targets" (previous value: ";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/NuGet.targets") at /usr/lib/mono/xbuild/15.0/Microsoft.Common.targets/ImportAfter/Microsoft.NET.Build.Extensions.targets (14,5)
Property reassignment: $(MSBuildAllProjects)=";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/NuGet.targets;/usr/lib/mono/xbuild/15.0/Microsoft.Common.targets/ImportAfter/Microsoft.NET.Build.Extensions.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets" (previous value: ";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/NuGet.targets;/usr/lib/mono/xbuild/15.0/Microsoft.Common.targets/ImportAfter/Microsoft.NET.Build.Extensions.targets") at /usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets (15,5)
Property reassignment: $(_TargetFrameworkVersionWithoutV)="4.6.1" (previous value: "v4.6.1") at /usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets (18,5)
Property reassignment: $(MSBuildAllProjects)=";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/NuGet.targets;/usr/lib/mono/xbuild/15.0/Microsoft.Common.targets/ImportAfter/Microsoft.NET.Build.Extensions.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets" (previous value: ";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/NuGet.targets;/usr/lib/mono/xbuild/15.0/Microsoft.Common.targets/ImportAfter/Microsoft.NET.Build.Extensions.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets") at /usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets (15,5)
Property reassignment: $(MSBuildAllProjects)=";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/NuGet.targets;/usr/lib/mono/xbuild/15.0/Microsoft.Common.targets/ImportAfter/Microsoft.NET.Build.Extensions.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.ConflictResolution.targets" (previous value: ";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/NuGet.targets;/usr/lib/mono/xbuild/15.0/Microsoft.Common.targets/ImportAfter/Microsoft.NET.Build.Extensions.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets") at /usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.ConflictResolution.targets (15,5)
Property reassignment: $(MSBuildAllProjects)=";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/NuGet.targets;/usr/lib/mono/xbuild/15.0/Microsoft.Common.targets/ImportAfter/Microsoft.NET.Build.Extensions.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.ConflictResolution.targets;/usr/lib/mono/xbuild/Microsoft/NuGet/Microsoft.NuGet.targets" (previous value: ";/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.props;/tmp/msbuildissue.csproj;/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets;/usr/lib/mono/msbuild/15.0/bin/NuGet.targets;/usr/lib/mono/xbuild/15.0/Microsoft.Common.targets/ImportAfter/Microsoft.NET.Build.Extensions.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets;/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.ConflictResolution.targets") at /usr/lib/mono/xbuild/Microsoft/NuGet/Microsoft.NuGet.targets (67,5)
Property reassignment: $(ResolveAssemblyReferencesDependsOn)="
      GetFrameworkPaths;
      GetReferenceAssemblyPaths;
      PrepareForBuild;
      ResolveSDKReferences;
      ExpandSDKReferences;
    ;ResolveNuGetPackageAssets" (previous value: "
      GetFrameworkPaths;
      GetReferenceAssemblyPaths;
      PrepareForBuild;
      ResolveSDKReferences;
      ExpandSDKReferences;
    ") at /usr/lib/mono/xbuild/Microsoft/NuGet/Microsoft.NuGet.targets (171,5)
Property reassignment: $(PrepareResourcesDependsOn)="ResolveNuGetPackageAssets;
      PrepareResourceNames;
      ResGen;
      CompileLicxFiles
    " (previous value: "
      PrepareResourceNames;
      ResGen;
      CompileLicxFiles
    ") at /usr/lib/mono/xbuild/Microsoft/NuGet/Microsoft.NuGet.targets (172,5)
Overriding target "GetFrameworkPaths" in project "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" with target "GetFrameworkPaths" from project "/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets".
Overriding target "ResolveNativeReferences" in project "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" with target "ResolveNativeReferences" from project "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.Mono.targets".
Overriding target "GenerateManifests" in project "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" with target "GenerateManifests" from project "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.Mono.targets".
Overriding target "CollectReferencedNuGetPackages" in project "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" with target "CollectReferencedNuGetPackages" from project "/usr/lib/mono/xbuild/Microsoft/NuGet/Microsoft.NuGet.targets".
Project "/tmp/msbuildissue.csproj" on node 1 (default targets).
Building with tools version "15.0".
Project file contains ToolsVersion="12.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="15.0". For more information, please see http://go.microsoft.com/fwlink/?LinkId=293424.
Target "_CheckForInvalidConfigurationAndPlatform" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "BeforeBuild" depends on it):
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.Core, Version=15.1.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 "msbuildissue.csproj".
Target "BeforeBuild" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "Build" depends on it):
Done building target "BeforeBuild" in project "msbuildissue.csproj".
Target "BuildOnlySettings" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "CoreBuild" depends on it):
Done building target "BuildOnlySettings" in project "msbuildissue.csproj".
Target "GetFrameworkPaths" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "PrepareForBuild" depends on it):
Done building target "GetFrameworkPaths" in project "msbuildissue.csproj".
Target "GetReferenceAssemblyPaths" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "PrepareForBuild" depends on it):
Using "GetReferenceAssemblyPaths" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "GetReferenceAssemblyPaths"
Done executing task "GetReferenceAssemblyPaths".
Done building target "GetReferenceAssemblyPaths" in project "msbuildissue.csproj".
Target "AssignLinkMetadata" skipped, due to false condition; ( '$(SynthesizeLinkMetadata)' == 'true' ) was evaluated as ( '' == 'true' ).
Target "PrepareForBuild" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "CoreBuild" depends on it):
Using "FindAppConfigFile" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "FindAppConfigFile"
Done executing task "FindAppConfigFile".
Using "MakeDir" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "MakeDir"
Done executing task "MakeDir".
Done building target "PrepareForBuild" in project "msbuildissue.csproj".
Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
Target "BeforeResolveReferences" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "ResolveReferences" depends on it):
Done building target "BeforeResolveReferences" in project "msbuildissue.csproj".
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 "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "PrepareProjectReferences" depends on it):
Task "ResolveNonMSBuildProjectOutput" skipped, due to false condition; ('$(BuildingInsideVisualStudio)'=='true' and '@(ProjectReferenceWithConfiguration)'!='') was evaluated as (''=='true' and ''!='').
Done building target "_SplitProjectReferencesByFileExistence" in project "msbuildissue.csproj".
Target "_GetProjectReferenceTargetFrameworkProperties" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "PrepareProjectReferences" depends on it):
Using "MSBuild" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "MSBuild"
Done executing task "MSBuild".
Task "GetReferenceNearestTargetFrameworkTask" skipped, due to false condition; ('@(_ProjectReferenceTargetFrameworkPossibilities->Count())' != '0' and '$(ReferringTargetFrameworkForProjectReferences)' != '') was evaluated as ('0' != '0' and '.NETFramework,Version=v4.6.1' != '').
Done building target "_GetProjectReferenceTargetFrameworkProperties" in project "msbuildissue.csproj".
Target "PrepareProjectReferences" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "ResolveProjectReferences" depends on it):
Done building target "PrepareProjectReferences" in project "msbuildissue.csproj".
Target "ResolveProjectReferences" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (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' or 'true' != 'true') and '15.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' or 'true' != 'true') and '15.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' 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 "msbuildissue.csproj".
Target "FindInvalidProjectReferences" skipped, due to false condition; ('$(FindInvalidProjectReferences)' == 'true') was evaluated as ('' == 'true').
Target "ResolveNativeReferences" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.Mono.targets" from project "/tmp/msbuildissue.csproj" (target "ResolveReferences" depends on it):
Done building target "ResolveNativeReferences" in project "msbuildissue.csproj".
Target "GetFrameworkPaths" skipped. Previously built successfully.
Target "GetReferenceAssemblyPaths" skipped. Previously built successfully.
Target "PrepareForBuild" skipped. Previously built successfully.
Target "GetInstalledSDKLocations" skipped, due to false condition; ('@(SDKReference)' != '') was evaluated as ('' != '').
Target "ResolveSDKReferences" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "ResolveAssemblyReferences" depends on it):
Task "ResolveSDKReference" skipped, due to false condition; ('@(SDKReference)'!='') was evaluated as (''!='').
Done building target "ResolveSDKReferences" in project "msbuildissue.csproj".
Target "ResolveSDKReferences" skipped. Previously built successfully.
Target "ExpandSDKReferences" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "ResolveAssemblyReferences" depends on it):
Task "GetSDKReferenceFiles" skipped, due to false condition; ('@(ResolvedSDKReference)'!='') was evaluated as (''!='').
Done building target "ExpandSDKReferences" in project "msbuildissue.csproj".
Target "ResolveNuGetPackageAssets" skipped, due to false condition; ('$(ResolveNuGetPackages)' == 'true' and exists('$(ProjectLockFile)')) was evaluated as ('true' == 'true' and exists('obj/project.assets.json')).
Target "FilterDeniedAssemblyReferences" skipped, due to false condition; ('$(FilterDeniedAssemblies)' == 'true') was evaluated as ('false' == 'true').
Target "ImplicitlyExpandNETStandardFacades" in file "/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets" from project "/tmp/msbuildissue.csproj" (target "ResolveAssemblyReferences" depends on it):
Using "GetDependsOnNETStandard" task from assembly "/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/tools/net46/Microsoft.NET.Build.Extensions.Tasks.dll".
Task "GetDependsOnNETStandard"
Done executing task "GetDependsOnNETStandard".
Task "NETBuildExtensionsError" skipped, due to false condition; ('$(DependsOnNETStandard)' == 'true' AND '$(NETStandardInbox)' != 'true' AND '$(_UsingOldSDK)' == 'true') was evaluated as ('False' == 'true' AND '' != 'true' AND '' == 'true').
Done building target "ImplicitlyExpandNETStandardFacades" in project "msbuildissue.csproj".
Target "GetReferenceAssemblyPaths" skipped. Previously built successfully.
Target "_HandlePackageFileConflicts" in file "/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.ConflictResolution.targets" from project "/tmp/msbuildissue.csproj" (target "ResolveAssemblyReferences" depends on it):
Using "ResolvePackageFileConflicts" task from assembly "/usr/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/tools/net46/Microsoft.NET.Build.Extensions.Tasks.dll".
Task "ResolvePackageFileConflicts"
Done executing task "ResolvePackageFileConflicts".
Done building target "_HandlePackageFileConflicts" in project "msbuildissue.csproj".
Target "ResolveAssemblyReferences" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "ResolveReferences" depends on it):
Using "ResolveAssemblyReference" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "ResolveAssemblyReference"
  TargetFrameworkMoniker:
      .NETFramework,Version=v4.6.1
  TargetFrameworkMonikerDisplayName:
      .NET Framework 4.6.1
  TargetedRuntimeVersion:
      v4.0.30319
  Assemblies:
      System
      glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f
          SpecificVersion = 'true'
      gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f
          SpecificVersion = 'true'
      System.Core
  AssemblyFiles:
      /usr/lib/mono/4.6.1-api/mscorlib.dll
  CandidateAssemblyFiles:
  TargetFrameworkDirectories:
      /usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/,/usr/lib/mono/4.6.1-api/,/usr/lib/mono/4.6.1-api/Facades/,/usr/lib/mono/4.6.1-api/Facades/
  InstalledAssemblyTables:
  IgnoreInstalledAssemblyTable:
      False
  SearchPaths:
      {CandidateAssemblyFiles}
      {HintPathFromItem}
      {TargetFrameworkDirectory}
      {Registry:Software/Microsoft/.NETFramework,v4.6.1,AssemblyFoldersEx}
      {AssemblyFolders}
      {GAC}
      {RawFileName}
      bin/Debug/
  AllowedAssemblyExtensions:
      .winmd
      .dll
      .exe
  AllowedRelatedFileExtensions:
      .pdb
      .dll.mdb
      .exe.mdb
      .xml
      .pri
      .dll.config
      .exe.config
  AppConfigFile:

  AutoUnify:
      False
  CopyLocalDependenciesWhenParentReferenceInGac:
      True
  FindDependencies:
      True
  TargetProcessorArchitecture:
      msil
  StateFile:
      obj/Debug/msbuildissue.csprojResolveAssemblyReference.cache
  InstalledAssemblySubsetTables:
  IgnoreInstalledAssemblySubsetTable:
      False
  TargetFrameworkSubsets:
  FullTargetFrameworkSubsetNames:
      Full
  ProfileName:

  FullFrameworkFolders:
      /usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/
      /usr/lib/mono/4.6.1-api/
      /usr/lib/mono/4.6.1-api/Facades/
  LatestTargetFrameworkDirectories:
  ProfileTablesLocation:
  Primary reference "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
      Resolved file path is "/usr/lib/mono/4.6.1-api/mscorlib.dll".
      Reference found at search path location "/usr/lib/mono/4.6.1-api/mscorlib.dll".
      This reference is not "CopyLocal" because it's in a Frameworks directory.
      The ImageRuntimeVersion for this reference is "".
  Primary reference "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
      Resolved file path is "/usr/lib/mono/4.6.1-api/System.dll".
      Reference found at search path location "{TargetFrameworkDirectory}".
          For SearchPath "{TargetFrameworkDirectory}".
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/System.winmd", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/System.dll", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/System.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/System.winmd", but it didn't exist.
      This reference is not "CopyLocal" because it's in a Frameworks directory.
      The ImageRuntimeVersion for this reference is "".
  Primary reference "glib-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f".
      Resolved file path is "/usr/lib/mono/gac/glib-sharp/3.0.0.0__35e10195dab3c99f/glib-sharp.dll".
      Reference found at search path location "{GAC}".
          For SearchPath "{TargetFrameworkDirectory}".
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/glib-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/glib-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/glib-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/glib-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/glib-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/glib-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/glib-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/glib-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/glib-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/glib-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/glib-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/glib-sharp.exe", but it didn't exist.
      Found related file "/usr/lib/mono/gac/glib-sharp/3.0.0.0__35e10195dab3c99f/glib-sharp.dll.config".
      This reference is not "CopyLocal" because it's registered in the GAC.
      The ImageRuntimeVersion for this reference is "".
  Primary reference "gtk-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f".
      Resolved file path is "/usr/lib/mono/gac/gtk-sharp/3.0.0.0__35e10195dab3c99f/gtk-sharp.dll".
      Reference found at search path location "{GAC}".
          For SearchPath "{TargetFrameworkDirectory}".
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/gtk-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/gtk-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/gtk-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/gtk-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/gtk-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/gtk-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gtk-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gtk-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gtk-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gtk-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gtk-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gtk-sharp.exe", but it didn't exist.
      Found related file "/usr/lib/mono/gac/gtk-sharp/3.0.0.0__35e10195dab3c99f/gtk-sharp.dll.config".
      This reference is not "CopyLocal" because it's registered in the GAC.
      The ImageRuntimeVersion for this reference is "".
  Primary reference "System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
      Resolved file path is "/usr/lib/mono/4.6.1-api/System.Core.dll".
      Reference found at search path location "{TargetFrameworkDirectory}".
          For SearchPath "{TargetFrameworkDirectory}".
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/System.Core.winmd", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/System.Core.dll", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/System.Core.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/System.Core.winmd", but it didn't exist.
      This reference is not "CopyLocal" because it's in a Frameworks directory.
      The ImageRuntimeVersion for this reference is "".
  Dependency "gdk-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f".
      Resolved file path is "/usr/lib/mono/gac/gdk-sharp/3.0.0.0__35e10195dab3c99f/gdk-sharp.dll".
      Reference found at search path location "{GAC}".
          For SearchPath "{TargetFrameworkDirectory}".
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/gdk-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/gdk-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/gdk-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/gdk-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/gdk-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/gdk-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gdk-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gdk-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gdk-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gdk-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gdk-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gdk-sharp.exe", but it didn't exist.
      Required by "gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f".
      Found related file "/usr/lib/mono/gac/gdk-sharp/3.0.0.0__35e10195dab3c99f/gdk-sharp.dll.config".
      This reference is not "CopyLocal" because it's registered in the GAC.
      The ImageRuntimeVersion for this reference is "".
  Dependency "atk-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f".
      Resolved file path is "/usr/lib/mono/gac/atk-sharp/3.0.0.0__35e10195dab3c99f/atk-sharp.dll".
      Reference found at search path location "{GAC}".
          For SearchPath "{TargetFrameworkDirectory}".
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/atk-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/atk-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/atk-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/atk-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/atk-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/atk-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/atk-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/atk-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/atk-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/atk-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/atk-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/atk-sharp.exe", but it didn't exist.
      Required by "gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f".
      Found related file "/usr/lib/mono/gac/atk-sharp/3.0.0.0__35e10195dab3c99f/atk-sharp.dll.config".
      This reference is not "CopyLocal" because it's registered in the GAC.
      The ImageRuntimeVersion for this reference is "".
  Dependency "gio-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f".
      Resolved file path is "/usr/lib/mono/gac/gio-sharp/3.0.0.0__35e10195dab3c99f/gio-sharp.dll".
      Reference found at search path location "{GAC}".
          For SearchPath "{TargetFrameworkDirectory}".
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/gio-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/gio-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/gio-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/gio-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/gio-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/gio-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gio-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gio-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gio-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gio-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gio-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/gio-sharp.exe", but it didn't exist.
      Required by "gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f".
      Found related file "/usr/lib/mono/gac/gio-sharp/3.0.0.0__35e10195dab3c99f/gio-sharp.dll.config".
      This reference is not "CopyLocal" because it's registered in the GAC.
      The ImageRuntimeVersion for this reference is "".
  Dependency "cairo-sharp, Version=1.10.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756".
      Resolved file path is "/usr/lib/mono/gac/cairo-sharp/1.10.0.0__0738eb9f132ed756/cairo-sharp.dll".
      Reference found at search path location "{GAC}".
          For SearchPath "{TargetFrameworkDirectory}".
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/cairo-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/cairo-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/cairo-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/cairo-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/cairo-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/cairo-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/cairo-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/cairo-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/cairo-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/cairo-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/cairo-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/cairo-sharp.exe", but it didn't exist.
      Required by "gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f".
      This reference is not "CopyLocal" because it's registered in the GAC.
      The ImageRuntimeVersion for this reference is "".
  Dependency "pango-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f".
      Resolved file path is "/usr/lib/mono/gac/pango-sharp/3.0.0.0__35e10195dab3c99f/pango-sharp.dll".
      Reference found at search path location "{GAC}".
          For SearchPath "{TargetFrameworkDirectory}".
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/pango-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/pango-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.6.1/pango-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/pango-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/pango-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/pango-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/pango-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/pango-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/pango-sharp.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/pango-sharp.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/pango-sharp.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.6.1-api/Facades/pango-sharp.exe", but it didn't exist.
      Required by "gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f".
      Found related file "/usr/lib/mono/gac/pango-sharp/3.0.0.0__35e10195dab3c99f/pango-sharp.dll.config".
      This reference is not "CopyLocal" because it's registered in the GAC.
      The ImageRuntimeVersion for this reference is "".
Done executing task "ResolveAssemblyReference".
Done building target "ResolveAssemblyReferences" in project "msbuildissue.csproj".
Target "GenerateBindingRedirects" skipped, due to false condition; ('$(AutoGenerateBindingRedirects)' == 'true' and '$(GenerateBindingRedirectsOutputType)' == 'true') was evaluated as ('' == 'true' and 'true' == 'true').
Target "GenerateBindingRedirectsUpdateAppConfig" skipped, due to false condition; ('$(AutoGenerateBindingRedirects)' == 'true' and '$(GenerateBindingRedirectsOutputType)' == 'true' and Exists('$(_GenerateBindingRedirectsIntermediateAppConfig)')) was evaluated as ('' == 'true' and 'true' == 'true' and Exists('obj/Debug/msbuildissue.exe.config')).
Target "ResolveComReferences" skipped, due to false condition; ('@(COMReference)'!='' or '@(COMFileReference)'!='') was evaluated as (''!='' or ''!='').
Target "AfterResolveReferences" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "ResolveReferences" depends on it):
Done building target "AfterResolveReferences" in project "msbuildissue.csproj".
Target "GetReferenceAssemblyPaths" skipped. Previously built successfully.
Target "ImplicitlyExpandDesignTimeFacades" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.NETFramework.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "ResolveReferences" depends on it):
Task "Message" skipped, due to false condition; ('%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandDesignTimeFacades') was evaluated as ('{GAC}' == 'ImplicitlyExpandDesignTimeFacades').
Task "Message" skipped, due to false condition; ('%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandDesignTimeFacades') was evaluated as ('/usr/lib/mono/4.6.1-api/mscorlib.dll' == 'ImplicitlyExpandDesignTimeFacades').
Task "Message" skipped, due to false condition; ('%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandDesignTimeFacades') was evaluated as ('{TargetFrameworkDirectory}' == 'ImplicitlyExpandDesignTimeFacades').
Done building target "ImplicitlyExpandDesignTimeFacades" in project "msbuildissue.csproj".
Target "ResolveReferences" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "CoreBuild" depends on it):
Done building target "ResolveReferences" in project "msbuildissue.csproj".
Target "ResolveNuGetPackageAssets" skipped, due to false condition; ('$(ResolveNuGetPackages)' == 'true' and exists('$(ProjectLockFile)')) was evaluated as ('true' == 'true' and exists('obj/project.assets.json')).
Target "AssignTargetPaths" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "PrepareResourceNames" depends on it):
Using "AssignTargetPath" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.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 ''=='.manifest').
Done building target "AssignTargetPaths" in project "msbuildissue.csproj".
Target "AssignTargetPaths" skipped. Previously built successfully.
Target "SplitResourcesByCulture" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (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.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "AssignCulture"
Done executing task "AssignCulture".
Done building target "SplitResourcesByCulture" in project "msbuildissue.csproj".
Target "CreateManifestResourceNames" skipped, due to false condition; ('@(EmbeddedResource)' != '') was evaluated as ('' != '').
Target "CreateCustomManifestResourceNames" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "PrepareResourceNames" depends on it):
Done building target "CreateCustomManifestResourceNames" in project "msbuildissue.csproj".
Target "PrepareResourceNames" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "PrepareResources" depends on it):
Done building target "PrepareResourceNames" in project "msbuildissue.csproj".
Target "ResolveAssemblyReferences" skipped. Previously built successfully.
Target "SplitResourcesByCulture" skipped. Previously built successfully.
Target "BeforeResGen" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "ResGen" depends on it):
Done building target "BeforeResGen" in project "msbuildissue.csproj".
Target "ResolveReferences" skipped. Previously built successfully.
Target "FindReferenceAssembliesForReferences" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "CoreResGen" depends on it):
Done building target "FindReferenceAssembliesForReferences" in project "msbuildissue.csproj".
Target "CoreResGen" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (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 "msbuildissue.csproj".
Target "AfterResGen" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "ResGen" depends on it):
Done building target "AfterResGen" in project "msbuildissue.csproj".
Target "ResGen" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "PrepareResources" depends on it):
Done building target "ResGen" in project "msbuildissue.csproj".
Target "CompileLicxFiles" skipped, due to false condition; ('@(_LicxFile)'!='') was evaluated as (''!='').
Target "PrepareResources" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "CoreBuild" depends on it):
Done building target "PrepareResources" in project "msbuildissue.csproj".
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. Previously built successfully.
Target "_SetExternalWin32ManifestProperties" skipped, due to false condition; ('$(GenerateClickOnceManifests)'=='true' or '@(NativeReference)'!='' or '@(ResolvedIsolatedComModules)'!='') was evaluated as (''=='true' or ''!='' or ''!='').
Target "_SetEmbeddedWin32ManifestProperties" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "SetWin32ManifestProperties" depends on it):
Using "GetFrameworkPath" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "GetFrameworkPath"
Done executing task "GetFrameworkPath".
Done building target "_SetEmbeddedWin32ManifestProperties" in project "msbuildissue.csproj".
Target "SetWin32ManifestProperties" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "Compile" depends on it):
Done building target "SetWin32ManifestProperties" in project "msbuildissue.csproj".
Target "FindReferenceAssembliesForReferences" skipped. Previously built successfully.
Target "_GenerateCompileInputs" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (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 "msbuildissue.csproj".
Target "PrepareForBuild" skipped. Previously built successfully.
Target "GetReferenceAssemblyPaths" skipped. Previously built successfully.
Target "_SetTargetFrameworkMonikerAttribute" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "GenerateTargetFrameworkMonikerAttribute" depends on it):
Done building target "_SetTargetFrameworkMonikerAttribute" in project "msbuildissue.csproj".
Target "GenerateTargetFrameworkMonikerAttribute" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "BeforeCompile" depends on it):
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
Input files: /usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.targets
Output files: /tmp/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs
Done building target "GenerateTargetFrameworkMonikerAttribute" in project "msbuildissue.csproj".
Target "GenerateAdditionalSources" skipped, due to false condition; ('@(AssemblyAttributes)' != '' and '$(GenerateAdditionalSources)' == 'true') was evaluated as ('' != '' and '' == 'true').
Target "BeforeCompile" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "Compile" depends on it):
Done building target "BeforeCompile" in project "msbuildissue.csproj".
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 "ResolveAssemblyReferences" skipped. Previously built successfully.
Target "_GenerateCompileDependencyCache" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "Compile" depends on it):
Using "Hash" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "Hash"
Done executing task "Hash".
Using "WriteLinesToFile" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "WriteLinesToFile"
  MSB3493: Skipping write to file "obj/Debug/msbuildissue.csproj.CoreCompileInputs.cache" because content would not change.
Done executing task "WriteLinesToFile".
Done building target "_GenerateCompileDependencyCache" in project "msbuildissue.csproj".
Target "_ComputeNonExistentFileProperty" skipped, due to false condition; (('$(BuildingInsideVisualStudio)' == 'true') and ('$(BuildingOutOfProcess)' != 'true') and (('$(BuildingProject)' == 'false') or ('$(UseHostCompilerIfAvailable)' == 'true'))) was evaluated as (('' == 'true') and ('' != 'true') and (('true' == 'false') or ('true' == 'true'))).
Target "ResolveCodeAnalysisRuleSet" skipped, due to false condition; ('$(CodeAnalysisRuleSet)' != '') was evaluated as ('' != '').
Target "_BeforeVBCSCoreCompile" in file "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.Managed.Core.targets" from project "/tmp/msbuildissue.csproj" (target "CoreCompile" depends on it):
Done building target "_BeforeVBCSCoreCompile" in project "msbuildissue.csproj".
Target "_RoslynPublicSignHack" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.Mono.targets" from project "/tmp/msbuildissue.csproj" (target "CoreCompile" depends on it):
Done building target "_RoslynPublicSignHack" in project "msbuildissue.csproj".
Target "ShimReferencePathsWhenCommonTargetsDoesNotUnderstandReferenceAssemblies" skipped, due to false condition; ('@(ReferencePathWithRefAssemblies)' == '') was evaluated as ('/usr/lib/mono/gac/glib-sharp/3.0.0.0__35e10195dab3c99f/glib-sharp.dll;/usr/lib/mono/gac/gtk-sharp/3.0.0.0__35e10195dab3c99f/gtk-sharp.dll;/usr/lib/mono/4.6.1-api/mscorlib.dll;/usr/lib/mono/4.6.1-api/System.Core.dll;/usr/lib/mono/4.6.1-api/System.dll' == '').
Target "_SetPathMapFromSourceRoots" skipped, due to false condition; ('$(DeterministicSourcePaths)' == 'true') was evaluated as ('' == 'true').
Target "CoreCompile" in file "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" from project "/tmp/msbuildissue.csproj" (target "Compile" depends on it):
Building target "CoreCompile" completely.
Output file "obj/Debug/msbuildissue.exe" does not exist.
Using "Csc" task from assembly "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll".
Task "Csc"
  /usr/lib/mono/4.5/csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /platform:anycpu32bitpreferred /highentropyva+ /reference:/usr/lib/mono/gac/glib-sharp/3.0.0.0__35e10195dab3c99f/glib-sharp.dll /reference:/usr/lib/mono/gac/gtk-sharp/3.0.0.0__35e10195dab3c99f/gtk-sharp.dll /reference:/usr/lib/mono/4.6.1-api/mscorlib.dll /reference:/usr/lib/mono/4.6.1-api/System.Core.dll /reference:/usr/lib/mono/4.6.1-api/System.dll /debug:portable /out:obj/Debug/msbuildissue.exe /subsystemversion:6.00 /target:exe /utf8output code.cs "/tmp/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs"
  Microsoft (R) Visual C# Compiler version 2.8.2.62916 (2ad4aabc)
  Copyright (C) Microsoft Corporation. All rights reserved.

code.cs(6,29): error CS0012: The type 'Application' is defined in an assembly that is not referenced. You must add a reference to assembly 'gio-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f'. [/tmp/msbuildissue.csproj]
code.cs(9,29): error CS0012: The type 'Application' is defined in an assembly that is not referenced. You must add a reference to assembly 'gio-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f'. [/tmp/msbuildissue.csproj]
Done executing task "Csc" -- FAILED.
Done building target "CoreCompile" in project "msbuildissue.csproj" -- FAILED.
Target "_CheckForCompileOutputs" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "_CleanGetCurrentAndPriorFileWrites" depends on it):
Done building target "_CheckForCompileOutputs" in project "msbuildissue.csproj".
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 "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "_CleanRecordFileWrites" depends on it):
Using "ReadLinesFromFile" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "ReadLinesFromFile"
Done executing task "ReadLinesFromFile".
Using "ConvertToAbsolutePath" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "ConvertToAbsolutePath"
Done executing task "ConvertToAbsolutePath".
Using "FindUnderPath" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "FindUnderPath"
  Comparison path is "/tmp".
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.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "RemoveDuplicates"
Done executing task "RemoveDuplicates".
Done building target "_CleanGetCurrentAndPriorFileWrites" in project "msbuildissue.csproj".
Target "_CleanRecordFileWrites" in file "/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" from project "/tmp/msbuildissue.csproj" (target "CoreBuild" depends on it):
Task "RemoveDuplicates"
Done executing task "RemoveDuplicates".
Task "MakeDir"
Done executing task "MakeDir".
Task "WriteLinesToFile"
Done executing task "WriteLinesToFile".
Done building target "_CleanRecordFileWrites" in project "msbuildissue.csproj".
Done Building Project "/tmp/msbuildissue.csproj" (default targets) -- FAILED.

Build FAILED.

"/tmp/msbuildissue.csproj" (default target) (1) ->
(CoreCompile target) -> 
  code.cs(6,29): error CS0012: The type 'Application' is defined in an assembly that is not referenced. You must add a reference to assembly 'gio-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f'. [/tmp/msbuildissue.csproj]
  code.cs(9,29): error CS0012: The type 'Application' is defined in an assembly that is not referenced. You must add a reference to assembly 'gio-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f'. [/tmp/msbuildissue.csproj]

    0 Warning(s)
    2 Error(s)

Time Elapsed 00:00:00.95
directhex commented 5 years ago
  Output Item(s): 
      _ResolveAssemblyReferenceResolvedFiles=
          /usr/lib/mono/gac/glib-sharp/3.0.0.0__35e10195dab3c99f/glib-sharp.dll
                  CopyLocal=false
                  FusionName=glib-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f
                  OriginalItemSpec=glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f
                  Package=glib-sharp-2.0
                  ReferenceSourceTarget=ResolveAssemblyReference
                  ResolvedFrom={GAC}
                  SpecificVersion=true
                  Version=

:confused:

atsushieno commented 5 years ago

This has been left as if there were actually no problem, but it is really problematic. https://twitter.com/atsushi_eno/status/1086812955562336258

PiotrZierhoffer commented 4 years ago

One year later, this is still a very relevant problems. It effectively prevents you from creating a reliable build system working both on macOS and Linux. It resonates nicely with "xbuilt tool is deprecated, use msbuild instead" warning message xbuild issues nowadays...