Tests may want to copy a ReferenceFromRuntime to the test output directory.
To do this, a test can set Private=true (same as you would for a Reference).
By default we don't do this, because anything in the runtime folder will be
part of the shared framework that the test runs on.
In the case of Microsoft.XmlSerializer.Generator it's reference is an
application and the project expects this to be next to the test assembly.
* Add converter from IEnumerable to TheoryData
Manipulating test input data in IEnumerable format is
desirable, but a bit awkward to get into IEnumerable<object[]> format that [Theory] expects.
Add test project to new test project. :) Change a test in
System.IO.FileSystem to theory with new extension.
* Fix performance test project
* Run the UpdateConfigurations target
* Add netfx reference
When we added the override folks would sometimes also get pdbs and
when they did the ReferenceFromRuntime logic was broken. To fix this
we make sure we only look at .dll files for the ReferenceFromRuntime
resolution logic.
We will likely be removing the System.Private.CoreLib.dll and only
having System.Private.CoreLib.ni.dll so we need our ReferenceFromRuntime
infrastructure to support falling back to the ni if that is the only
thing present.
Switch the to using a common DefaultReference notion between targets
and eliminated targetingpack.props. Moved the default references for
tests into tests.targets.
Fixed where we added Private to References because in some cases it wasn't happing
because the target that set Private=true was run before all the references were
added. This is why we are now setting Reference Private=false in a different target
from ProjectReference Private=false because they sometimes need to happen at different
times in the target execution.
Set _FindDependencies=false to block RAR from trying to automatically
add the closure of the primary references as it added automatic references that folks
could accidently start depending on and we want to be explicit about our dependencies.
This was really noticable once we started auto referencing the netstandard facade which
caused everything to get pulled into the reference set.
To fix the various build scenarios where we add ProjectReferences automatically we needed
a common target to hook on which we now have AddProjectReferencesDynamically target that
correctly hooks into the various dependency chains. See comment in targets file for more
details.
ReferenceFromRuntime for src projects isn't safe. It allows any source
project to reference the output of another source project without
properly sequencing the build.
This fixes that by changing ReferenceFromRuntime to instead use a
ProjectReference to the runtime project for the building configuration
and filter that to just the files requested.
I also completely block the use of ReferenceFromRuntime in test projects