There's one component that needs to exist in both sides, the component that's doing the transformations for CoreRuntime. AppCompile, which lives besides .net native binaries, needs to perform these transformations (for fallback toolchain which would target CoreRuntime). Likewise UAP Debug-F5 scenario would naturally need these transformations. Unfortunatelly we're shipping the CoreRuntime and PN from two different branches. So there isn't really a great way to support both product lines without duplicating the code.
The changes are:
- I'm duplicating the code that handles the appx transformation in AppCompile into a standalone assembly.
I'm also taking out dead code which is supposed to call crossgen in case of fallback toolchain. It's not yet clear how we're going to handle both VS scenario and Store compilation if/when fallback toolchain is going to ship. I may need to introduce this code block back if fallback toolchain is going to be supported.
- I've also created a new Logger that's leveraging the Microsoft.Build.Framework.BuildEngine.
- Moving the targets files for CoreRuntime VS integration under Project K. These files have slight edits, such as renaming the properties (from AppCompile to something that makes more sense sine there aren't any AppCompile anymore)
- Finally, including the new files in the CoreRuntimeSDK setup.
Note, once this changeset is checked in, I'll check-in a cleanup changeset on ProjectN branch where I'll remove CoreRuntime related pieces.
[tfs-changeset: 1424011]
<ProjectFile Include="hosts\dirs.proj" />
<ProjectFile Include="snskipverf\snskipverf.nativeproj" />
<ProjectFile Include="sandboxhelper\dirs.proj" />
+ <ProjectFile Include="uap\dirs.proj" Condition="'$(_BuildArch)'=='x86'"/>
</ItemGroup>
<ItemGroup Condition="'$(BuildExePhase)' == '1' and '$(FeatureCoreSystem)' == 'true'">