Open directhex opened 6 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.
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
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:
This has been left as if there were actually no problem, but it is really problematic. https://twitter.com/atsushi_eno/status/1086812955562336258
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...
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:And a very simple project which depends on the API in the LOWER VERSIONED library:
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
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, thePackage
tags on theReference
mean "for this reference, consider the assemblies in the file $PKG_CONFIG_PATH/gtk-sharp-2.0.pc" and building with xbuild yields:Those don't look like GAC paths, because they're not: they're the paths specified in the pkg-config file:
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: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