Skip to content

What is the expected path for ResolvePackageFileConflicts to work with repositories that build their own platforms #3335

Open
@ViktorHofer

Description

@ViktorHofer

CoreFx doesn't use the Microsoft.NETCore.App.Ref targeting pack as we build the refs ourselves. Without that targeting pack the ResolvePackageFileConflicts task seems to not be able to handle conflicts between package runtime assemblies and the live built ones.

Comparing an example project with a test project in CoreFx I can see the following differences:

  • PlatformManifests: not set, points to a manifest file on disk which contains all the platform assemblies
  • PreferredPackages: not set, a list of packages that are preferred?

Conflicts as such are therefore missing in CoreFx:

Encountered conflict between 'Platform:System.Xml.XDocument.dll' and 'CopyLocal:C:\Users\vihofer\.nuget\packages\system.xml.xdocument\4.0.11\lib\netstandard1.3\System.Xml.XDocument.dll'. NETSDK1033: Choosing 'Platform:System.Xml.XDocument.dll' because AssemblyVersion '4.1.1.0' is greater than '4.0.11.0'.

The impact of this is that dependencies that come via packages are copied to the output directory and are preferred over the live built ones.

What is the expected path for repositories that live build platforms?

EDIT: Attaching the binlog of the corefx test project: msbuild.zip

cc @ericstj @dsplaisted @nguerrera

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions