Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert C# Reference Assembly Generation to Use GenAPI #1057

Merged
merged 86 commits into from
Jun 24, 2019
Merged
Show file tree
Hide file tree
Changes from 81 commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
cc88c44
Adding DARC dependency for Microsoft.DotNet.GenAPI and updating
rladuca Jun 12, 2019
1e0eb74
Version updates, adding basic target
rladuca Jun 13, 2019
c73aa9b
Enabling GenAPI to generate sources for all applicable assemblies.
rladuca Jun 14, 2019
b026c00
Adding PBT to GenAPI project list.
rladuca Jun 14, 2019
2e6baf2
Initial build targets for GenAPI and generated reference assembly pro…
rladuca Jun 14, 2019
e54b31c
Reverting to projects explicitly declaring their needed PackageRefere…
rladuca Jun 17, 2019
f39b7b8
Adding additional GenAPI params.
rladuca Jun 17, 2019
b39bdad
Switching to generate the reference assembly project via a task using…
rladuca Jun 18, 2019
22dc686
Adding project exclusions for WIndowsBase
rladuca Jun 18, 2019
1d25a1d
Turning off XLIFF generation for reference assemblies.
rladuca Jun 18, 2019
c0c2175
Removing module initializer injection from PCore-ref
Jun 18, 2019
1368634
Removing CompileDependsOn from PFramework-ref
Jun 18, 2019
047d35c
Removing disabling of default compile items to pickup the generated r…
rladuca Jun 18, 2019
9d6b1c6
Adding global API exclusions file.
rladuca Jun 18, 2019
4084c69
Removing further default excludes.
rladuca Jun 18, 2019
f1a0a01
Adding initial exclusions and NoWarns based on building.
rladuca Jun 18, 2019
6f8cf93
Initial change to manual reference assembly projects.
rladuca Jun 19, 2019
d8de8ee
Modifications to build System.Xaml-ref.
rladuca Jun 19, 2019
ce25fa4
Fixing issues with checks against hand ref assembly property.
rladuca Jun 19, 2019
e5d1c84
Adding UIAutomationTypes reference assembly
rladuca Jun 19, 2019
d317215
Adding reference project for UIAutomationProvider
rladuca Jun 19, 2019
96dd69a
Adding UIAutomationClient ref project
rladuca Jun 19, 2019
8fa8dbe
Removing workaround for WindowsBase GenAPI issue and adding back manu…
rladuca Jun 19, 2019
23d7340
Adding UIAutomationClientSideProviders reference project.
rladuca Jun 19, 2019
61a24bd
Adding System.Windows.Input.Manipulations reference project
rladuca Jun 19, 2019
bece66a
Adding PresentationBuildTasks reference project
rladuca Jun 19, 2019
f7929b4
Adding PresentationCore ref project.
rladuca Jun 20, 2019
e24a1e2
Cleaning up PresentationCore ref assembly and adding exclusion notes.
rladuca Jun 20, 2019
f8f0bfd
Adding security attributes to exclusions
rladuca Jun 20, 2019
35e701f
Fixing exclusion list
rladuca Jun 20, 2019
fd4b700
Fixing exclude param
rladuca Jun 20, 2019
71daa01
Fixing attribute exclusions to match CoreFX.
rladuca Jun 20, 2019
eb250d0
Applying new exclusions to ref assembly code and fixups
rladuca Jun 20, 2019
86e94a4
Cleaning UIA assemblies and updating code with latest exclusions.
rladuca Jun 20, 2019
89b2d03
New exclusions and cleanup
rladuca Jun 20, 2019
74e6228
PBT cleanup and new exclusions
rladuca Jun 20, 2019
0100953
New exclusions and fixups for PCore ref assembly
rladuca Jun 20, 2019
0187a32
Adding ReachFramework ref project and cleaning.
rladuca Jun 20, 2019
8408c93
Adding PresentationFramework reference assembly and fixups.
rladuca Jun 21, 2019
9276850
Removing any extraneous ProjectReferences from reference assembly pro…
rladuca Jun 21, 2019
32b69c8
Adding back assembly attributes to ref assemblies where applicable.
rladuca Jun 21, 2019
25e6caf
Removing PBT reference assembly as we're not shipping one anymore.
rladuca Jun 21, 2019
ad86d97
Further removing PBT-ref
rladuca Jun 21, 2019
76073c0
Adding the ReferenceAssemblyAttribute to all hand-crafted ref assembl…
rladuca Jun 21, 2019
6d4dd82
Removing no longer applicable tasks
rladuca Jun 21, 2019
0a018f0
Fixing an issue with incorrect signing of System.Xaml.
rladuca Jun 21, 2019
c17b9d2
Enable ApiCompat against new ref assemblies.
rladuca Jun 21, 2019
c09951e
PresentationFramework ApiCompat baseline
rladuca Jun 21, 2019
9d13de5
ReachFramework ApiCompat baseline
rladuca Jun 21, 2019
c221445
System.Windows.Input.Manipulations ApiCompat baseline
rladuca Jun 21, 2019
fa0a9c7
UIA ApiCompat baselines
rladuca Jun 21, 2019
8a71707
Fixing removal of ObsoleteAttribute and ApiCompat baseline for System…
rladuca Jun 21, 2019
c4fb2be
ApiCompat baselines for WindowsBase
rladuca Jun 21, 2019
c8cd002
Updating WindowsBase ApiCompat baseline.
rladuca Jun 21, 2019
4fe9237
Adding back attributes that were removed incorrectly.
rladuca Jun 21, 2019
0d994d6
Fixing missing attributes
rladuca Jun 21, 2019
ee698b0
Fixing missing attributes on reachframework
rladuca Jun 21, 2019
15472c9
Updating PCore baselines and adding back missing attrs
rladuca Jun 21, 2019
a21c509
PresentationFramework fixup + baselines
rladuca Jun 21, 2019
710c665
Adding missing projects to solution
rladuca Jun 22, 2019
1f1dd57
Fixing ApiCompat bugs
rladuca Jun 22, 2019
308b7d8
Re-baselining with ApiCompat fixes and removing old, no longer applic…
rladuca Jun 22, 2019
10e49db
Adding documentation
rladuca Jun 22, 2019
d27cab9
DARC updates
rladuca Jun 22, 2019
5fb0320
Merge with master
rladuca Jun 22, 2019
e38d686
Updating reference assemblies due to System.Security.Permissions chan…
rladuca Jun 22, 2019
d341fd8
Merge branch 'master' into dev/roladuca/genapics
rladuca Jun 22, 2019
d7d623c
Fixing up ResolveMicrosoftDotNetWpfGitHubReferences so that dotnet_wp…
rladuca Jun 22, 2019
43d56c3
Merge branch 'dev/roladuca/genapics' of https://www.github.com/dotnet…
rladuca Jun 22, 2019
f7ace71
Fixing up ApiCompat for C++\CLI vs C# runtime projects.
rladuca Jun 22, 2019
4253b8a
Fixing PackageRefernece for RID specific MicrosoftDotNetWpfGitHubPack…
rladuca Jun 22, 2019
3c6de1f
Adding back ensure directory targets for GenAPI
rladuca Jun 22, 2019
2de70d4
Merge branch 'master' into dev/roladuca/genapics
rladuca Jun 22, 2019
20e5f89
Adding dotnet-wpf-int ref assemblies to signing and apicompat.
rladuca Jun 22, 2019
cf1502c
Merge branch 'dev/roladuca/genapics' of https://www.github.com/dotnet…
rladuca Jun 22, 2019
12c99da
Cleaning up reference assembly generation.
rladuca Jun 22, 2019
3f59366
Adding back some internals to satisfy XAML compilation.
rladuca Jun 23, 2019
5da7b0c
Add back internals to support XAML compilation.
rladuca Jun 23, 2019
4552662
DARC Updates
rladuca Jun 23, 2019
fd71569
Documentation fixups.
rladuca Jun 23, 2019
67f70a1
Merge branch 'master' into dev/roladuca/genapics
rladuca Jun 23, 2019
6ed400a
Documentation updates
rladuca Jun 23, 2019
b554672
Fixing mistake in doc link.
rladuca Jun 23, 2019
c8fdf22
More doc fixes
rladuca Jun 23, 2019
dd36d65
DARC Updates
rladuca Jun 24, 2019
9ba4f4c
Merge branch 'master' into dev/roladuca/genapics
rladuca Jun 24, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions Documentation/gen-api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# GenApi Usage in WPF on .NET Core
In WPF on .NET Core, C# reference assemblies are created via the use of [GenAPI](https://github.com/dotnet/arcade/tree/master/src/Microsoft.DotNet.GenAPI) and a separate reference assembly project located in the `ref` directory under a particular assemblies source directory.

WPF assemblies make extensive use of the [InternalsVisibleToAttribute](https://docs.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.internalsvisibletoattribute?view=netcore-3.0) which precludes the use of [ProduceReferenceAssembly](https://docs.microsoft.com/en-us/visualstudio/msbuild/common-msbuild-project-properties?view=vs-2019) or [ProduceOnlyReferenceAssembly](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/refonly-compiler-option). This is because these compiler options will include internal types and members in the reference assembly. In WPF, this creates dangling references to assemblies that do not exist in the `WindowsDesktop` reference pack.

Using GenAPI allows us to strip out internals, removing the dangling references from our reference assemblies.

## Using GenAPI in WPF
GenAPI is run only on-demand. In the event that a change to a runtime assembly creates new public surface area, a developer will see an [ApiCompat](api-compat.md) error between the reference assembly and the runtime assembly. In order to address this, the developer must run GenAPI to generate new reference assembly code.
### Running GenAPI
GenAPI can be run by setting the following MSBuild property while building.
```
/p:GenerateReferenceAssemblySource=true
```
When a build is run with that property enabled, GenAPI will read the runtime assembly and generate a new `{AssemblyName}.cs` file under the ref directory in the assembly's source tree.

This new file will contain the newly created surface area and will need to be checked in along with the runtime assembly change. The next build without `GenerateReferenceAssemblySource` enabled will no longer display an ApiCompat error as the surface area will now match the baseline.
### Issues with GenAPI
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is all of this extra work needed because we use the InternalsVisibleToAttribute?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a combination of a few things, InternalsVisibleTo certainly complicates things between assemblies, but also XAML compilation will reflect and try to find internal API in order to take certain shortcuts and optimizations. (Look at IAddChildInternal for example).

There are also issues where we have public API that has internal abstract members, which confuses GenAPI. GenAPI itself just sometimes adds strange things, like private dummy int fields and properties. No idea why, there are just bugs. I intend to make small reproduction applications when I have time and file bugs against GenAPI, but that's future stuff.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are those bugs reported back to the Roslyn team so they can be fixed?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GenAPI doesn't use Roslyn it uses Microsoft.CCI). Originally, we were using Roslyn to generate our reference assemblies, but the use of InternalsVisibleTo was creating dangling references. We filed dotnet/roslyn#36409 to address these issues. In the meantime, this was the fix.

I haven't created issues against GenAPI yet, I haven't had the time to create minimal reproductions of the various bugs.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If i'm adding a new function to a class, what's the difference between adding the API to the reference assembly manually and using GenAPI? I might not fully understand the problem we are trying to solve here, but it seems like it would be much simpler to just manually modify the reference assembly. Is there some part of our workflow that makes things more complicated?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I missed this. The C# reference assemblies didn't exist in a manual fashion before this (back in the old internal repo maybe), so we could not just add things. So GenAPI was used as an initial seed for the most part. For some changes, it's probably easy enough just to pop the change into the reference assembly. Other changes it might be more difficult and require basically mirrored code changes. Also if you make a small change sans GenAPI then someone makes a very large change and uses it, it'll likely generate a noisier diff since your code location might not be the same.

It's probably the simplest and most thorough to GenAPI and use that output to manually add to the reference assembly. It's pretty easy (mostly) to diff the generated output against the current surface and just pick and choose your new stuff.

Long term we'd rather just have Roslyn allow us to say, "All publics, but also these specific internals" in a nice configurable fashion and call it a day. But we need something in the short term.

Often, GenAPI will generate code output that will contain code that is either private, internal, or creates build errors. For this reason a developer usually cannot just use the output of GenAPI directly. Instead, the developer should do the following:
* Build with GenAPI enabled
* Diff the output file against the previous version
* Extract just the new surface area (and related code) from the generated code
* Revert the generated file
* Add back the new surface area to the reference assembly code
* Ensure that nothing in the new surface area is private or internal unless requried by XAML compilation or other reference assemblies
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't sound like a good idea to have internal/private APIs required by the XAML compiler. I understand that IAddChildInternal exists today, but is this something we want to put in as being an ok thing to do in the future?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is more if you make a change to an existing class that uses something like that, the entire class will get re-generated, sans the IAddChildInternal. So you need to ensure that you're not messing with that piece.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can have a discussion about fixing the docs up later, at this point I don't want to spin another build just due to doc updates. Helix queues are killing me today.

* Rebuild without GenAPI enabled and verify there are no ApiCompat errors
140 changes: 140 additions & 0 deletions Microsoft.Dotnet.Wpf.sln
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,28 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Printing-Presentatio
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{D0AED517-9972-41CB-8751-983E4EB8F511}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PresentationCore-ref", "src\Microsoft.DotNet.Wpf\src\PresentationCore\ref\PresentationCore-ref.csproj", "{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PresentationFramework-ref", "src\Microsoft.DotNet.Wpf\src\PresentationFramework\ref\PresentationFramework-ref.csproj", "{4B948597-3625-4B63-A272-2A9D8B37DC6D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReachFramework-ref", "src\Microsoft.DotNet.Wpf\src\ReachFramework\ref\ReachFramework-ref.csproj", "{B824914F-06A9-4FA4-8584-1B4F3E041973}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Printing-ref", "src\Microsoft.DotNet.Wpf\src\System.Printing\ref\System.Printing-ref.csproj", "{0D7A2936-51DB-4B6F-906B-301E20141064}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Input.Manipulations-ref", "src\Microsoft.DotNet.Wpf\src\System.Windows.Input.Manipulations\ref\System.Windows.Input.Manipulations-ref.csproj", "{89FF315B-1200-472B-9CCA-93D51512604B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xaml-ref", "src\Microsoft.DotNet.Wpf\src\System.Xaml\ref\System.Xaml-ref.csproj", "{65C38C26-CC7A-4389-A5FF-46E55A214492}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UIAutomationClient-ref", "src\Microsoft.DotNet.Wpf\src\UIAutomation\UIAutomationClient\ref\UIAutomationClient-ref.csproj", "{702AF75A-9BF3-494C-8265-4E3D1B2937F5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UIAutomationClientSideProviders-ref", "src\Microsoft.DotNet.Wpf\src\UIAutomation\UIAutomationClientSideProviders\ref\UIAutomationClientSideProviders-ref.csproj", "{38702943-E4E0-4DD8-9301-6BCCB49A759E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UIAutomationProvider-ref", "src\Microsoft.DotNet.Wpf\src\UIAutomation\UIAutomationProvider\ref\UIAutomationProvider-ref.csproj", "{5F2BDB27-183B-49A7-89E5-E5CA039D5001}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UIAutomationTypes-ref", "src\Microsoft.DotNet.Wpf\src\UIAutomation\UIAutomationTypes\ref\UIAutomationTypes-ref.csproj", "{29C13CF5-AFE9-4D43-8CF0-46361096117F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WindowsBase-ref", "src\Microsoft.DotNet.Wpf\src\WindowsBase\ref\WindowsBase-ref.csproj", "{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{B0EFDB12-C931-4E7F-A6C2-D4AC111D7EDF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DrtXaml", "src\Microsoft.DotNet.Wpf\test\DRT\DrtXaml\DrtXaml\DrtXaml.csproj", "{FAB114A2-2C6C-4372-A6BB-BC087B646E3A}"
Expand Down Expand Up @@ -575,6 +595,126 @@ Global
{A78C427C-F7FE-486A-8777-1701E6E81BE0}.Release|x64.Build.0 = Release|x64
{A78C427C-F7FE-486A-8777-1701E6E81BE0}.Release|x86.ActiveCfg = Release|Any CPU
{A78C427C-F7FE-486A-8777-1701E6E81BE0}.Release|x86.Build.0 = Release|Any CPU
{65C38C26-CC7A-4389-A5FF-46E55A214492}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65C38C26-CC7A-4389-A5FF-46E55A214492}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65C38C26-CC7A-4389-A5FF-46E55A214492}.Debug|x64.ActiveCfg = Debug|x64
{65C38C26-CC7A-4389-A5FF-46E55A214492}.Debug|x64.Build.0 = Debug|x64
{65C38C26-CC7A-4389-A5FF-46E55A214492}.Debug|x86.ActiveCfg = Debug|Any CPU
{65C38C26-CC7A-4389-A5FF-46E55A214492}.Debug|x86.Build.0 = Debug|Any CPU
{65C38C26-CC7A-4389-A5FF-46E55A214492}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65C38C26-CC7A-4389-A5FF-46E55A214492}.Release|Any CPU.Build.0 = Release|Any CPU
{65C38C26-CC7A-4389-A5FF-46E55A214492}.Release|x64.ActiveCfg = Release|x64
{65C38C26-CC7A-4389-A5FF-46E55A214492}.Release|x64.Build.0 = Release|x64
{65C38C26-CC7A-4389-A5FF-46E55A214492}.Release|x86.ActiveCfg = Release|Any CPU
{65C38C26-CC7A-4389-A5FF-46E55A214492}.Release|x86.Build.0 = Release|Any CPU
{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}.Debug|x64.ActiveCfg = Debug|x64
{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}.Debug|x64.Build.0 = Debug|x64
{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}.Debug|x86.ActiveCfg = Debug|Any CPU
{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}.Debug|x86.Build.0 = Debug|Any CPU
{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}.Release|Any CPU.Build.0 = Release|Any CPU
{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}.Release|x64.ActiveCfg = Release|x64
{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}.Release|x64.Build.0 = Release|x64
{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}.Release|x86.ActiveCfg = Release|Any CPU
{8D2B8BD2-25A5-47FD-B1E8-87E800CA2184}.Release|x86.Build.0 = Release|Any CPU
{29C13CF5-AFE9-4D43-8CF0-46361096117F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{29C13CF5-AFE9-4D43-8CF0-46361096117F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{29C13CF5-AFE9-4D43-8CF0-46361096117F}.Debug|x64.ActiveCfg = Debug|x64
{29C13CF5-AFE9-4D43-8CF0-46361096117F}.Debug|x64.Build.0 = Debug|x64
{29C13CF5-AFE9-4D43-8CF0-46361096117F}.Debug|x86.ActiveCfg = Debug|Any CPU
{29C13CF5-AFE9-4D43-8CF0-46361096117F}.Debug|x86.Build.0 = Debug|Any CPU
{29C13CF5-AFE9-4D43-8CF0-46361096117F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{29C13CF5-AFE9-4D43-8CF0-46361096117F}.Release|Any CPU.Build.0 = Release|Any CPU
{29C13CF5-AFE9-4D43-8CF0-46361096117F}.Release|x64.ActiveCfg = Release|x64
{29C13CF5-AFE9-4D43-8CF0-46361096117F}.Release|x64.Build.0 = Release|x64
{29C13CF5-AFE9-4D43-8CF0-46361096117F}.Release|x86.ActiveCfg = Release|Any CPU
{29C13CF5-AFE9-4D43-8CF0-46361096117F}.Release|x86.Build.0 = Release|Any CPU
{5F2BDB27-183B-49A7-89E5-E5CA039D5001}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5F2BDB27-183B-49A7-89E5-E5CA039D5001}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5F2BDB27-183B-49A7-89E5-E5CA039D5001}.Debug|x64.ActiveCfg = Debug|x64
{5F2BDB27-183B-49A7-89E5-E5CA039D5001}.Debug|x64.Build.0 = Debug|x64
{5F2BDB27-183B-49A7-89E5-E5CA039D5001}.Debug|x86.ActiveCfg = Debug|Any CPU
{5F2BDB27-183B-49A7-89E5-E5CA039D5001}.Debug|x86.Build.0 = Debug|Any CPU
{5F2BDB27-183B-49A7-89E5-E5CA039D5001}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5F2BDB27-183B-49A7-89E5-E5CA039D5001}.Release|Any CPU.Build.0 = Release|Any CPU
{5F2BDB27-183B-49A7-89E5-E5CA039D5001}.Release|x64.ActiveCfg = Release|x64
{5F2BDB27-183B-49A7-89E5-E5CA039D5001}.Release|x64.Build.0 = Release|x64
{5F2BDB27-183B-49A7-89E5-E5CA039D5001}.Release|x86.ActiveCfg = Release|Any CPU
{5F2BDB27-183B-49A7-89E5-E5CA039D5001}.Release|x86.Build.0 = Release|Any CPU
{702AF75A-9BF3-494C-8265-4E3D1B2937F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{702AF75A-9BF3-494C-8265-4E3D1B2937F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{702AF75A-9BF3-494C-8265-4E3D1B2937F5}.Debug|x64.ActiveCfg = Debug|x64
{702AF75A-9BF3-494C-8265-4E3D1B2937F5}.Debug|x64.Build.0 = Debug|x64
{702AF75A-9BF3-494C-8265-4E3D1B2937F5}.Debug|x86.ActiveCfg = Debug|Any CPU
{702AF75A-9BF3-494C-8265-4E3D1B2937F5}.Debug|x86.Build.0 = Debug|Any CPU
{702AF75A-9BF3-494C-8265-4E3D1B2937F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{702AF75A-9BF3-494C-8265-4E3D1B2937F5}.Release|Any CPU.Build.0 = Release|Any CPU
{702AF75A-9BF3-494C-8265-4E3D1B2937F5}.Release|x64.ActiveCfg = Release|x64
{702AF75A-9BF3-494C-8265-4E3D1B2937F5}.Release|x64.Build.0 = Release|x64
{702AF75A-9BF3-494C-8265-4E3D1B2937F5}.Release|x86.ActiveCfg = Release|Any CPU
{702AF75A-9BF3-494C-8265-4E3D1B2937F5}.Release|x86.Build.0 = Release|Any CPU
{38702943-E4E0-4DD8-9301-6BCCB49A759E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{38702943-E4E0-4DD8-9301-6BCCB49A759E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{38702943-E4E0-4DD8-9301-6BCCB49A759E}.Debug|x64.ActiveCfg = Debug|x64
{38702943-E4E0-4DD8-9301-6BCCB49A759E}.Debug|x64.Build.0 = Debug|x64
{38702943-E4E0-4DD8-9301-6BCCB49A759E}.Debug|x86.ActiveCfg = Debug|Any CPU
{38702943-E4E0-4DD8-9301-6BCCB49A759E}.Debug|x86.Build.0 = Debug|Any CPU
{38702943-E4E0-4DD8-9301-6BCCB49A759E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{38702943-E4E0-4DD8-9301-6BCCB49A759E}.Release|Any CPU.Build.0 = Release|Any CPU
{38702943-E4E0-4DD8-9301-6BCCB49A759E}.Release|x64.ActiveCfg = Release|x64
{38702943-E4E0-4DD8-9301-6BCCB49A759E}.Release|x64.Build.0 = Release|x64
{38702943-E4E0-4DD8-9301-6BCCB49A759E}.Release|x86.ActiveCfg = Release|Any CPU
{38702943-E4E0-4DD8-9301-6BCCB49A759E}.Release|x86.Build.0 = Release|Any CPU
{89FF315B-1200-472B-9CCA-93D51512604B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{89FF315B-1200-472B-9CCA-93D51512604B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{89FF315B-1200-472B-9CCA-93D51512604B}.Debug|x64.ActiveCfg = Debug|x64
{89FF315B-1200-472B-9CCA-93D51512604B}.Debug|x64.Build.0 = Debug|x64
{89FF315B-1200-472B-9CCA-93D51512604B}.Debug|x86.ActiveCfg = Debug|Any CPU
{89FF315B-1200-472B-9CCA-93D51512604B}.Debug|x86.Build.0 = Debug|Any CPU
{89FF315B-1200-472B-9CCA-93D51512604B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{89FF315B-1200-472B-9CCA-93D51512604B}.Release|Any CPU.Build.0 = Release|Any CPU
{89FF315B-1200-472B-9CCA-93D51512604B}.Release|x64.ActiveCfg = Release|x64
{89FF315B-1200-472B-9CCA-93D51512604B}.Release|x64.Build.0 = Release|x64
{89FF315B-1200-472B-9CCA-93D51512604B}.Release|x86.ActiveCfg = Release|Any CPU
{89FF315B-1200-472B-9CCA-93D51512604B}.Release|x86.Build.0 = Release|Any CPU
{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}.Debug|x64.ActiveCfg = Debug|x64
{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}.Debug|x64.Build.0 = Debug|x64
{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}.Debug|x86.ActiveCfg = Debug|Any CPU
{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}.Debug|x86.Build.0 = Debug|Any CPU
{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}.Release|Any CPU.Build.0 = Release|Any CPU
{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}.Release|x64.ActiveCfg = Release|x64
{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}.Release|x64.Build.0 = Release|x64
{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}.Release|x86.ActiveCfg = Release|Any CPU
{9F39CC8E-7EDE-4F93-B8D8-0320533DF420}.Release|x86.Build.0 = Release|Any CPU
{B824914F-06A9-4FA4-8584-1B4F3E041973}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B824914F-06A9-4FA4-8584-1B4F3E041973}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B824914F-06A9-4FA4-8584-1B4F3E041973}.Debug|x64.ActiveCfg = Debug|x64
{B824914F-06A9-4FA4-8584-1B4F3E041973}.Debug|x64.Build.0 = Debug|x64
{B824914F-06A9-4FA4-8584-1B4F3E041973}.Debug|x86.ActiveCfg = Debug|Any CPU
{B824914F-06A9-4FA4-8584-1B4F3E041973}.Debug|x86.Build.0 = Debug|Any CPU
{B824914F-06A9-4FA4-8584-1B4F3E041973}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B824914F-06A9-4FA4-8584-1B4F3E041973}.Release|Any CPU.Build.0 = Release|Any CPU
{B824914F-06A9-4FA4-8584-1B4F3E041973}.Release|x64.ActiveCfg = Release|x64
{B824914F-06A9-4FA4-8584-1B4F3E041973}.Release|x64.Build.0 = Release|x64
{B824914F-06A9-4FA4-8584-1B4F3E041973}.Release|x86.ActiveCfg = Release|Any CPU
{B824914F-06A9-4FA4-8584-1B4F3E041973}.Release|x86.Build.0 = Release|Any CPU
{4B948597-3625-4B63-A272-2A9D8B37DC6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4B948597-3625-4B63-A272-2A9D8B37DC6D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4B948597-3625-4B63-A272-2A9D8B37DC6D}.Debug|x64.ActiveCfg = Debug|x64
{4B948597-3625-4B63-A272-2A9D8B37DC6D}.Debug|x64.Build.0 = Debug|x64
{4B948597-3625-4B63-A272-2A9D8B37DC6D}.Debug|x86.ActiveCfg = Debug|Any CPU
{4B948597-3625-4B63-A272-2A9D8B37DC6D}.Debug|x86.Build.0 = Debug|Any CPU
{4B948597-3625-4B63-A272-2A9D8B37DC6D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4B948597-3625-4B63-A272-2A9D8B37DC6D}.Release|Any CPU.Build.0 = Release|Any CPU
{4B948597-3625-4B63-A272-2A9D8B37DC6D}.Release|x64.ActiveCfg = Release|x64
{4B948597-3625-4B63-A272-2A9D8B37DC6D}.Release|x64.Build.0 = Release|x64
{4B948597-3625-4B63-A272-2A9D8B37DC6D}.Release|x86.ActiveCfg = Release|Any CPU
{4B948597-3625-4B63-A272-2A9D8B37DC6D}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
20 changes: 12 additions & 8 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,13 @@
<Uri>https://github.com/dotnet/core-setup</Uri>
<Sha>1af2ba41a56e09064091dc82264057289b56bd15</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19322.2">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19323.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>48aed493ffa093728bc9ffd17be0e5957f77aade</Sha>
<Sha>021335b10e2676cfb1b6f7e7967bbb4668d00da2</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.CodeAnalysis" Version="1.0.0-beta.19322.2">
<Dependency Name="Microsoft.DotNet.CodeAnalysis" Version="1.0.0-beta.19323.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>48aed493ffa093728bc9ffd17be0e5957f77aade</Sha>
<Sha>021335b10e2676cfb1b6f7e7967bbb4668d00da2</Sha>
</Dependency>
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-preview7.19320.1" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri>
Expand All @@ -95,13 +95,17 @@
<Uri>https://github.com/dotnet/coreclr</Uri>
<Sha>fdcfdaf734584ca4b6066a7344eecffeeafdaa9a</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="2.0.0-beta.19322.2">
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="2.0.0-beta.19323.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>48aed493ffa093728bc9ffd17be0e5957f77aade</Sha>
<Sha>021335b10e2676cfb1b6f7e7967bbb4668d00da2</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.ApiCompat" Version="1.0.0-beta.19322.2">
<Dependency Name="Microsoft.DotNet.ApiCompat" Version="1.0.0-beta.19323.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>48aed493ffa093728bc9ffd17be0e5957f77aade</Sha>
<Sha>021335b10e2676cfb1b6f7e7967bbb4668d00da2</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.19323.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>021335b10e2676cfb1b6f7e7967bbb4668d00da2</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>
5 changes: 3 additions & 2 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,9 @@
</PropertyGroup>
<!-- Packages that come from https://github.com/dotnet/arcade -->
<PropertyGroup>
<MicrosoftDotNetApiCompatVersion>1.0.0-beta.19322.2</MicrosoftDotNetApiCompatVersion>
<MicrosoftDotNetCodeAnalysisPackageVersion>1.0.0-beta.19322.2</MicrosoftDotNetCodeAnalysisPackageVersion>
<MicrosoftDotNetApiCompatVersion>1.0.0-beta.19323.3</MicrosoftDotNetApiCompatVersion>
<MicrosoftDotNetCodeAnalysisPackageVersion>1.0.0-beta.19323.3</MicrosoftDotNetCodeAnalysisPackageVersion>
<MicrosoftDotNetGenAPIVersion>1.0.0-beta.19323.3</MicrosoftDotNetGenAPIVersion>
</PropertyGroup>
<!-- Packages that come from https://github.com/dotnet/corefxlab -->
<PropertyGroup>
Expand Down
1 change: 1 addition & 0 deletions eng/WpfArcadeSdk/Sdk/Sdk.props
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
<Import Project="$(WpfArcadeSdkToolsDir)Signing.props" />
<Import Project="$(WpfArcadeSdkToolsDir)CodeGen.props" />
<Import Project="$(WpfArcadeSdkToolsDir)ApiCompat.props" />
<Import Project="$(WpfArcadeSdkToolsDir)GenApi.props" />

<PropertyGroup>
<DebugType>full</DebugType>
Expand Down
1 change: 1 addition & 0 deletions eng/WpfArcadeSdk/Sdk/Sdk.targets
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
<Import Project="$(WpfArcadeSdkToolsDir)InjectModuleInitializer.targets" Condition="'$(InjectModuleInitializer)'=='true'"/>
<Import Project="$(WpfArcadeSdkToolsDir)TestProjects.targets" />
<Import Project="$(WpfArcadeSdkToolsDir)CreateTestPayload.targets" Condition="'$(CreateTestPayload)'=='true'"/>
<Import Project="$(WpfArcadeSdkToolsDir)GenAPI.targets"/>

<!-- PresentationBuildTasks related targets files -->
<Import Project="$(WpfArcadeSdkToolsDir)Pbt.targets" Condition="'$(InternalMarkupCompilation)'=='true'"/>
Expand Down
Loading