Граф коммитов

11958 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge 728347ad63
[dotnet] Remove watchOS code and from our .NET support. (#12764)
It's not tested, and thus has probably already bitrotted. If we add support
for watchOS to .NET in the future, it would likely be easier to start from
scratch (copying some of the other platforms), than having incomplete and
bitrotted code.
2021-09-20 07:40:03 +02:00
Rolf Bjarne Kvinge d94a0f53bd
[msbuild] Add @mauroa as a code owner. (#12766) 2021-09-17 13:19:03 -04:00
Rolf Bjarne Kvinge f2e3e5d991
[msbuild] Simplify some code and remove usage of the 'GeneratedSources' item group, which looks public, but really isn't. (#12757) 2021-09-17 16:17:26 +02:00
Rolf Bjarne Kvinge d7651c0631
[msbuild] Remove the BundleDependentFiles item group, it's not used. (#12755)
The BundleDependentFiles item group was added as a target input some time ago [1],
but nothing ever adds to it, so it's always empty. Googling doesn't show anything
relevant either, so this looks like dead code we can remove.

[1]: d7c2a45ca9
Ref: https://github.com/xamarin/xamarin-macios/issues/11863#issuecomment-920917955
2021-09-17 16:02:09 +02:00
Rolf Bjarne Kvinge f7a3619974
[tests] Fix warning about unused variable. (#12762) 2021-09-17 16:01:48 +02:00
dotnet-maestro[bot] e4187a5dad
Update dependencies from https://github.com/dotnet/installer build 20210915.13 (#12753)
Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21464.10 -> To Version 6.0.100-rc.2.21465.13

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2021-09-17 10:44:16 +02:00
Rolf Bjarne Kvinge 04548c7da0
[msbuild/dotnet] Include font files by default in .NET apps, and implement a way to automatically register them. Fixes #12536. (#12752)
* Automatically include *.ttf, *.ttc and *.otf in .NET projects as BundleResource
  items (if these files are found within the Resources/ subdirectory).
* Add support for a 'RegisterFont' metadata on BundleResource items, where if set
  to 'true', we'll register the font file in the Info.plist as required by the target
  platform.
* Add tests.

Fixes https://github.com/xamarin/xamarin-macios/issues/12536.
2021-09-17 10:18:09 +02:00
Rolf Bjarne Kvinge 3ab8e4ab61
[tests] Re-generate test[-system].config after .NET bumps. (#12759) 2021-09-17 09:57:14 +02:00
Alex Soto e2d05da816
[TVUIKit] Update bindings to Xcode 13 Beta 5 (#12722)
* [TVUIKit] Update bindings to Xcode 13 Beta 5

* Apply feedback

Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
2021-09-16 19:03:48 -04:00
TJ Lambert 60416bba35
[CoreVideo] Add Support for DotNet Attributes - Part 2 (#12744)
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
2021-09-16 16:46:59 -04:00
Manuel de la Pena 0a50bd0d92
[macios-binaries] Bump macios bina§ries for xcode13. (#12754) 2021-09-16 16:08:59 -04:00
Manuel de la Pena 2a2bc2560e
[Xtro] Allow to run xtro with some platforms ignored. (#12742) 2021-09-16 16:08:36 -04:00
Alex Soto 265c21a9ed
[One .NET] use preview.9 version number (#12743)
Context: https://devblogs.microsoft.com/dotnet/update-on-dotnet-maui/
Context: https://semvercompare.azurewebsites.net/?version=31.0.101-preview.9.1&version=31.0.100-rc.1.12

.NET MAUI (and underlying optional .NET workloads) will be in a
"preview" status until Q2 2022.

Going forward in xamarin-macios/main, our version number will be
`31.0.101-preview.9.*`.

We need to bump to 101, so the version number will be higher than the
currently released `31.0.100-rc.1.12`.
2021-09-16 17:39:41 +02:00
Rolf Bjarne Kvinge 298d423cf1
[xharness] Don't generate makefiles anymore. (#12751)
We either use the html web page, or for .NET tests there are custom makefile
logic.

This avoids having to maintain the makefile generation to keep up with our new
tests, and it fixes numerous warnings like this:

    Makefile-mac.inc:56: warning: overriding recipe for target 'build-mac-modern-macOS'
    Makefile-mac.inc:41: warning: ignoring old recipe for target 'build-mac-modern-macOS'
    Makefile-mac.inc:59: warning: overriding recipe for target 'clean-mac-modern-macOS'
    Makefile-mac.inc:44: warning: ignoring old recipe for target 'clean-mac-modern-macOS'
    Makefile-mac.inc:62: warning: overriding recipe for target 'exec-mac-modern-macOS'
    Makefile-mac.inc:47: warning: ignoring old recipe for target 'exec-mac-modern-macOS'
    Makefile-mac.inc:65: warning: overriding recipe for target 'run-mac-modern-macOS'
    Makefile-mac.inc:50: warning: ignoring old recipe for target 'run-mac-modern-macOS'
2021-09-16 17:23:07 +02:00
TJ Lambert c6ab896e6e
[UIKit] Add Support for DotNet Attributes (#12628)
Co-authored-by: tj_devel709 <antlambe@microsoft.com>
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
2021-09-16 11:22:40 -04:00
Rolf Bjarne Kvinge d142a3756f
[tests] Relax a few special folder checks for tvOS even more. Fixes #12640. (#12748)
Hopefully fixes https://github.com/xamarin/xamarin-macios/issues/12640.
2021-09-16 15:36:06 +02:00
Rolf Bjarne Kvinge 3f12890c40
[dotnet] Add Mac Catalyst to the list of versions we list in 'make check-system'. (#12747) 2021-09-16 15:02:55 +02:00
Rolf Bjarne Kvinge a78700bb40
[tests] Add additional test to try to narrow down #xamarin/maccore@2443. (#12384) 2021-09-16 15:00:06 +02:00
Rolf Bjarne Kvinge 79eb633fab
[tests] Fix (a)synchronous F# code. (#12738)
MonoTouch.NUnit.UI.MacRunner.MainAsync will try to invoke things on the main
thread, and at the same time execute a runloop, and if the runloop isn't
executing on the main thread, we end up with a deadlock, where we keep waiting
on the main thread to process stuff enqueued by the background thread, while
the main thread is waiting for the background thread to finish.

Solve this by fixing the F# code to call
MonoTouch.NUnit.UI.MacRunner.MainAsync on the main thread.
2021-09-16 09:43:29 +02:00
dotnet-maestro[bot] 56c53e1eed
Update dependencies from https://github.com/dotnet/installer build 20210914.10 (#12733)
Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21463.12 -> To Version 6.0.100-rc.2.21464.10

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2021-09-16 08:43:49 +02:00
Sebastien Pouliot 2691791ad2
[corefoundation] Optimize `CFArray` (#12740)
The added test case has not shown any major performance enhancement,
anything (if) is lost in the noise.

Beside the performance the change has two small size advantages
* `Create` does not call another method (less metadata)
* `GetCount` is now the p/invoke `CFArrayGetCount`

Before

// * Summary *

BenchmarkDotNet=v0.12.1.1528-nightly, OS=macOS Big Sur 11.5.2 (20G95) [Darwin 20.6.0]
Intel Core i7-4790K CPU 4.00GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
  [Host] : Mono 6.12.0 (2020-02/3cf59ad33da), X64

Job=InProcess  Toolchain=InProcessEmitToolchain  IterationCount=3
LaunchCount=1  WarmupCount=3

| Method | Length |        Mean |       Error |    StdDev |
|------- |------- |------------:|------------:|----------:|
| Create |      0 |    255.4 ns |    53.68 ns |   2.94 ns |
| Create |      1 |    343.0 ns |     8.55 ns |   0.47 ns |
| Create |     16 |    443.8 ns |    30.54 ns |   1.67 ns |
| Create |    256 |  1,898.4 ns |   246.80 ns |  13.53 ns |
| Create |   4096 | 40,503.2 ns | 5,395.81 ns | 295.76 ns |

// * Legends *
  Length : Value of the 'Length' parameter
  Mean   : Arithmetic mean of all measurements
  Error  : Half of 99.9% confidence interval
  StdDev : Standard deviation of all measurements
  1 ns   : 1 Nanosecond (0.000000001 sec)

// ***** BenchmarkRunner: End *****
Global total time: 00:00:33 (33.26 sec), executed benchmarks: 5

After

// * Summary *

BenchmarkDotNet=v0.12.1.1528-nightly, OS=macOS Big Sur 11.5.2 (20G95) [Darwin 20.6.0]
Intel Core i7-4790K CPU 4.00GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
  [Host] : Mono 6.12.0 (2020-02/3cf59ad33da), X64

Job=InProcess  Toolchain=InProcessEmitToolchain  IterationCount=3
LaunchCount=1  WarmupCount=3

| Method | Length |        Mean |       Error |   StdDev |
|------- |------- |------------:|------------:|---------:|
| Create |      0 |    246.3 ns |    55.49 ns |  3.04 ns |
| Create |      1 |    341.1 ns |    18.13 ns |  0.99 ns |
| Create |     16 |    425.4 ns |    34.97 ns |  1.92 ns |
| Create |    256 |  1,741.1 ns |   298.87 ns | 16.38 ns |
| Create |   4096 | 40,333.6 ns | 1,646.70 ns | 90.26 ns |

// * Legends *
  Length : Value of the 'Length' parameter
  Mean   : Arithmetic mean of all measurements
  Error  : Half of 99.9% confidence interval
  StdDev : Standard deviation of all measurements
  1 ns   : 1 Nanosecond (0.000000001 sec)

// ***** BenchmarkRunner: End *****
Global total time: 00:00:31 (31.68 sec), executed benchmarks: 5
2021-09-16 08:39:16 +02:00
Rolf Bjarne Kvinge c2a531259f
[introspection] Skip VideoToolbox classes in the ApiCMAttachmentTest on tvOS devices. (#12695)
They crash on device.
2021-09-16 08:25:29 +02:00
Rolf Bjarne Kvinge 5b4301f129
[tests] Add .NET makefiles for bindings-test. (#12712) 2021-09-16 08:20:35 +02:00
Rolf Bjarne Kvinge 811384f7d2
[msbuild] Fix parsing extra bundler arguments where a space separates the name and value of the argument. (#12731)
Fix parsing extra bundler arguments where a space separates the name and the
value of the argument, like this: '--xml file.xml' (as opposed to
'--xml:file.xml' or '--xml=file.xml').

Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1385946.
2021-09-16 08:17:33 +02:00
Rolf Bjarne Kvinge 2534607148
[dotnet-linker] Mark protocol interfaces when using the dynamic registrar. Fixes #12644. (#12737)
Fixes this test failure when running monotouch-test with the dynamic registrar and
linking has been enabled:

    MonoTouchFixtures.ObjCRuntime.RegistrarTest
        [FAIL] TestProtocolRegistration :   UIApplicationDelegate/17669
            Expected: True
            But was:  False

This is a port of what we do during linking for legacy Xamarin apps.

Ref: 682f54da87

Fixes https://github.com/xamarin/xamarin-macios/issues/12644.
2021-09-16 08:16:39 +02:00
Manuel de la Pena a9a0af807b
[MMP] If we disable mac do not try to build for dotnet. (#12739) 2021-09-15 20:54:52 -04:00
Rachel Kang b9cde5eeea
Merge pull request #12601 from rachelkang/xcode13.0-coreimage-b1-b3
[CoreImage] Update Xcode 13.0 bindings betas 1 and 3
2021-09-15 13:56:26 -04:00
github-actions[bot] d8730347bb
[Localization] Pulling New Localization Translations 1230485519 (#12718)
Co-authored-by: csigs <csigs@users.noreply.github.com>
Co-authored-by: CSIGS <csigs@outlook.com>
2021-09-15 12:53:35 -04:00
Rolf Bjarne Kvinge 892f0caac2
[dotnet-linker] Remove workaround for a dotnet/runtime issue wrt the AOT compiler. (#12528)
* [dotnet-linker] Remove workaround for a dotnet/runtime issue wrt the AOT compiler.

The dotnet/runtime issue has been fixed.

Ref: https://github.com/dotnet/runtime/issues/55733

* [tests] Set the _BundlerVerbosity property instead of MtouchExtraArgs/MonoBundlingExtraArgs to increase verbosity.

This fixes a problem where a test project would try to set the
MtouchExtraArgs/MonoBundlingExtraArgs properties, and it would fail because
the MtouchExtraArgs/MonoBundlingExtraArgs properties were already set from the
command line (and in MSBuild, properties that are set from command line
arguments can't be changed later).

In particular we have logic to pass --dlsym:+nunit.framework.dll for
monotouch-test, and that would just be ignored.
2021-09-15 18:10:30 +02:00
Manuel de la Pena 124dc24bea
[AVFoundation] Add support for xcode 13 beta 5. (#12550)
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2021-09-15 11:37:21 -04:00
Sebastien Pouliot 44557944eb
[foundation] Allow the optimization of `NSAutoreleasePool` bindings (#12720)
For historical reason `NSAutoreleasePool` is bound manually. However it
can still be optimized, which is nice since it's not a type that is
likely to be subclassed.

The default `IsDirectBinding`, from `NSObject`, does the right job.

Optimized code, inside app, will look like:

```csharp
[Export("init")]
public NSAutoreleasePool()
	: base(NSObjectFlag.Empty)
{
	base.Handle = Messaging.IntPtr_objc_msgSend(base.Handle, Selector.GetHandle("init"));
}

```
2021-09-15 09:47:22 -04:00
Sebastien Pouliot b691c630cc
[objcruntime] Directly call the `Runtime.TryGetNSObject(IntPtr,bool)` (#12730)
instead of the helper without the `bool` argument.

This way we can avoid the extra call (likely optimized), it's code and
metadata inside applications.

```diff
--- a.cs	2021-09-14 18:52:23.000000000 -0400
+++ b.cs	2021-09-14 18:52:26.000000000 -0400
@@ -1299,7 +1299,7 @@

 		private static bool HasNSObject(IntPtr P_0)
 		{
-			return TryGetNSObject(P_0) != null;
+			return TryGetNSObject(P_0, false) != null;
 		}

 		private static IntPtr GetHandleForINativeObject(IntPtr P_0)
@@ -1654,12 +1654,7 @@
 			return null;
 		}

-		public static NSObject TryGetNSObject(IntPtr P_0)
-		{
-			return TryGetNSObject(P_0, false);
-		}
-
-		internal static NSObject TryGetNSObject(IntPtr P_0, bool P_1 = false)
+		internal static NSObject TryGetNSObject(IntPtr P_0, bool P_1)
 		{
 			lock (lock_obj)
 			{
@@ -1712,7 +1707,7 @@
 			{
 				return null;
 			}
-			object obj = TryGetNSObject(P_0);
+			object obj = TryGetNSObject(P_0, false);
 			T val;
 			if (obj == null)
 			{
@@ -1839,7 +1834,7 @@
 			{
 				return null;
 			}
-			NSObject nSObject = TryGetNSObject(P_0);
+			NSObject nSObject = TryGetNSObject(P_0, false);
 			if (nSObject != null && P_2.IsAssignableFrom(nSObject.GetType()))
 			{
 				return nSObject;
@@ -1879,7 +1874,7 @@
 			{
 				return null;
 			}
-			NSObject nSObject = TryGetNSObject(P_0);
+			NSObject nSObject = TryGetNSObject(P_0, false);
 			T val = nSObject as T;
 			if (val != null)
 			{
```
2021-09-15 09:38:53 -04:00
Rolf Bjarne Kvinge 9cd9f17dca
[msbuild] Unify the iOS and macOS versions of the CreateBindingResourcePackage task. (#12710)
* Slightly less code.
* More code sharing.
* Brings remote windows support to this task for macOS projects if we ever
  want that.
2021-09-15 15:10:35 +02:00
Rolf Bjarne Kvinge 2a3bb286f0
[src] Fix the library for a few P/Invokes. (#12715)
This matters because we use the library defined by the P/Invoke to determine
which frameworks to link with, and if we get it wrong, things like this may
happen:

    Undefined symbols for architecture arm64:
      "_AudioObjectGetPropertyData", referenced from:
          wrapper_managed_to_native_AudioUnit_AudioUnit_AudioObjectGetPropertyData_uint_AudioUnit_AudioObjectPropertyAddress__uint__intptr__uint__uint_ in Xamarin.MacCatalyst.dll.o

because we though that the AudioObjectGetPropertyData function was in the
AudioUnit framework, and not in CoreAudio where it really is, and thus we
didn't link with the CoreAudio framework.

Also add an introspection test to verify that the library our P/Invokes point
to is correct.
2021-09-15 11:05:59 +02:00
Mauro Agnoletti 67fa841aa5
Updated Xamarin.Messaging version (#12728) 2021-09-15 09:37:56 +02:00
dotnet-maestro[bot] e55a58c377
[main] Update dependencies from dotnet/installer (#12688)
* Update dependencies from https://github.com/dotnet/installer build 20210910.3

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21458.9 -> To Version 6.0.100-rc.2.21460.3

Dependency coherency updates

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21452.4 -> To Version 6.0.100-1.21459.1 (parent: Microsoft.Dotnet.Sdk.Internal

* Update dependencies from https://github.com/dotnet/installer build 20210910.37

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21458.9 -> To Version 6.0.100-rc.2.21460.37

Dependency coherency updates

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21452.4 -> To Version 6.0.100-1.21459.1 (parent: Microsoft.Dotnet.Sdk.Internal

* Add dotnet-tools to our NuGet feeds to work around an msbuild/nuget bug.

Ref: https://github.com/dotnet/msbuild/issues/6834

* [src] Add an additional HttpClientHandler property to NSUrlSessionHandler.

We need this otherwise we get linker warnings which results in test failures
(because we verify that building a template doesn't show any warnings):

    * Xamarin.Tests.TemplateTest.CreateAndBuildTemplate("iOS","ios"): Build warnings:
        System.Net.Http.HttpClientHandler.GetServerCertificateCustomValidationCallback(): No members were resolved for 'get_ServerCertificateCustomValidationCallback'.
        System.Net.Http.HttpClientHandler.SetServerCertificateCustomValidationCallback(Func<HttpRequestMessage,X509Certificate2,X509Chain,SslPolicyErrors,Boolean>): No members were resolved for 'set_ServerCertificateCustomValidationCallback'.

Ref: fc631442f9
Ref: 679cd97153

* Update dependencies from https://github.com/dotnet/installer build 20210913.12

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21458.9 -> To Version 6.0.100-rc.2.21463.12

Dependency coherency updates

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21452.4 -> To Version 6.0.100-1.21459.1 (parent: Microsoft.Dotnet.Sdk.Internal

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2021-09-15 09:35:00 +02:00
Rolf Bjarne Kvinge 1192cd6975
[tests] Fix creation of IntPtr to work on a 32-bit system. (#12713) 2021-09-15 09:29:10 +02:00
Rolf Bjarne Kvinge f557936e9c
[runtime] Use the correct underlying types for our own nfloat/n(u)int types. (#12714)
Defining xm_nint_t to be 32-bit sized only on i386 is not the right thing to do for armv7.

Strangely enough this caused just a single test failure:

    MonoTouchFixtures.Foundation.CalendarTest
        [FAIL] TestFindNextDateAfterDateMatching :   Expected: <Foundation.MonoTouchException>
            But was:  null
            at MonoTouchFixtures.Foundation.CalendarTest.TestFindNextDateAfterDateMatching()

and that happened because:

1. We use a wrapper function around objc_msgSend:

    void *
    xamarin_IntPtr_objc_msgSend_IntPtr_IntPtr_nuint_exception (id self, SEL sel, void * p0, void * p1, xm_nuint_t p2, GCHandle *exception_gchandle)
    {
    	@try {
    		return ((func_xamarin_IntPtr_objc_msgSend_IntPtr_IntPtr_nuint_exception) objc_msgSend) (self, sel, p0, p1, p2);
    	} @catch (NSException *e) {
    		xamarin_process_nsexception_using_mode (e, true, exception_gchandle);
    		return NULL;
    	}
    }

2. Note that the second to last argument is an 'xm_nuint_t'. We told the
   native compiler this was a 64-bit value, when the managed P/Invoke would
   give it a 32-bit value. This had no effect on the 'p2' parameter, but it
   meant that clang would thing the next argument, 'exception_gchandle', would
   be somewhere it wasn't (the managed function would pass two 32-bit values,
   'p2' and 'exception_gchandle', which clang would merge into a single 64-bit
   'p2' argument, and then read random stuff for 'exception_gchandle').

3. Finally things would go sideways when we caught the exception and passed
   'exception_gchandle' to xamarin_process_nsexception_using_mode. In effect
   we'd ask xamarin_process_nsexception_using_mode to store the resulting
   gchandle in random memory. Amazingly it only resulted in a test failure
   (because upon return the managed location for the 'exception_gchandle'
   wasn't touched, and would have its initial value of 0, thus managed code
   would think no exception occurred).

So fix this to use the correct underlying types, instead of trying to figure
out the correct #if condition.

I'm not sure why we're using our own types here anyways, but this fix is the
smallest.
2021-09-15 09:17:43 +02:00
Alex Soto 8bc4fc645c
[UIKit] Update bindings to Xcode 13 Beta 5 (#12706)
* [UIKit] Update bindings to Xcode 13 Beta 5

* Fix tvOS availability

* Apply feedback

* Add UIPointerAccessory and feedback

* Fix typo

* Fix availability

* Apply feedback and fix library field lookup
2021-09-14 16:31:45 -04:00
TJ Lambert 25c8099aa6
[QTKit] Add Support for DotNet Attributes (#12686) 2021-09-14 14:27:37 -05:00
TJ Lambert 39ce8e1b1d
[AVFoundation] Add Support for DotNet Attributes (#12702) 2021-09-14 14:26:57 -05:00
Manuel de la Pena c2b7df3e41
[Build] Do not show the deprecated warnings. (#12683)
We are adding the warnings for net6 for customers, but those same
warnins do appear when we build the intermediate assembly and makes it
very very noise and hard to find errors. We can disable them for our
projects via stating that they are generated.
2021-09-14 10:30:41 -04:00
Sebastien Pouliot 89d014c854
Update CODEOWNERS (#12725) 2021-09-14 10:25:55 -04:00
Sebastien Pouliot 39455c421c
[generator] Use the newer, faster API alternatives when generating CIFilter subclasses (#12681) 2021-09-14 09:09:57 -04:00
TJ Lambert 485dbe4045
[AppKit] Add Support for DotNet Attributes (#12684) 2021-09-13 22:34:33 -05:00
TJ Lambert 0d86301a59
[CoreMedia] Add Support for DotNet Attributes (#12685) 2021-09-13 22:33:01 -05:00
TJ Lambert 2bb5f9e00f
[ObjCRuntime] Add Support for DotNet Attributes (#12721) 2021-09-13 22:28:23 -05:00
TJ Lambert 57d98c92b8
[NetworkExtension] Add Support for DotNet Attributes (#12719) 2021-09-13 22:27:21 -05:00
TJ Lambert 6fca07309d
[MediaToolbox] Add Support for DotNet Attributes (#12716) 2021-09-13 22:25:40 -05:00
TJ Lambert 3a1820cb9c
[AuthenticationServices] Add Support for DotNet Attributes (#12705)
Co-authored-by: tj_devel709 <antlambe@microsoft.com>
2021-09-13 19:06:59 -04:00