Skip to content

Commit 40655b9

Browse files
Basic BenchmarkDotNet support for Xamarin
This is basically an "MVP" of Xamarin support with BenchmarkDotNet. At a high level: 1. Simple benchmarks work with default config settings. 2. You can write a Xamarin.Forms app that runs benchmarks and displays the results. I added a very basic sample of this. Some of the details to get this working: * `ConsoleExitHandler.CancelKeypress` throws `PlatformNotSupportedException` on Xamarin platforms. Just ignore this exception. * Multi-target `BenchmarkDotNet.Samples` to include `netstandard2.0`. This allows me to reference the benchmarks from the Xamarin.Forms shared code. I had to exclude some Windows-specific benchmarks. * Don't probe for `mono` binary for `InProcess`. This was breaking `InProcess` for Xamarin, in general. It's not going to find a `mono` binary that doesn't exist. * Detect Xamarin.Android / Xamarin.iOS. I used the most common `Type.GetType` lookup to detect each platform: `Java.Lang.Object` and `Foundation.NSObject`. * Fix for `Directory.CurrentDirectory()` as `ArtifactPath`. The current directory on Android is not writeable. Looking for `/`, seemed like a simple fix for Android. * Default to `InProcess` for Xamarin platforms. Since we can't find a `mono` binary, we have to run in-process. Xamarin.iOS also shouldn't use `System.Reflection.Emit` until the interpreter is more stable. Users of BDN can experiment with the interpreter by configuring their benchmarks manually.
1 parent 5e7f01d commit 40655b9

File tree

86 files changed

+1362
-16
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+1362
-16
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,6 @@ src/BenchmarkDotNet/Disassemblers/*
5656
# Cake
5757
tools/**
5858
.dotnet
59+
60+
# Xamarin
61+
Resource.designer.cs

BenchmarkDotNet.sln

Lines changed: 215 additions & 10 deletions
Large diffs are not rendered by default.
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup>
4+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
5+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
6+
<ProjectGuid>{F8547E13-AE77-44CC-9F1D-1717921C4B86}</ProjectGuid>
7+
<ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
8+
<TemplateGuid>{c9e5eea5-ca05-42a1-839b-61506e0a37df}</TemplateGuid>
9+
<OutputType>Library</OutputType>
10+
<RootNamespace>BenchmarkDotNet.Samples.Forms.Droid</RootNamespace>
11+
<AssemblyName>BenchmarkDotNet.Samples.Forms.Android</AssemblyName>
12+
<AndroidApplication>True</AndroidApplication>
13+
<AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
14+
<AndroidResgenClass>Resource</AndroidResgenClass>
15+
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
16+
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
17+
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
18+
<TargetFrameworkVersion>v9.0</TargetFrameworkVersion>
19+
<AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
20+
<AndroidUseAapt2>true</AndroidUseAapt2>
21+
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
22+
<NuGetPackageImportStamp>
23+
</NuGetPackageImportStamp>
24+
</PropertyGroup>
25+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
26+
<DebugSymbols>true</DebugSymbols>
27+
<DebugType>portable</DebugType>
28+
<Optimize>false</Optimize>
29+
<OutputPath>bin\Debug</OutputPath>
30+
<DefineConstants>DEBUG;</DefineConstants>
31+
<ErrorReport>prompt</ErrorReport>
32+
<WarningLevel>4</WarningLevel>
33+
<AndroidLinkMode>None</AndroidLinkMode>
34+
</PropertyGroup>
35+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
36+
<DebugSymbols>true</DebugSymbols>
37+
<DebugType>portable</DebugType>
38+
<Optimize>true</Optimize>
39+
<OutputPath>bin\Release</OutputPath>
40+
<ErrorReport>prompt</ErrorReport>
41+
<WarningLevel>4</WarningLevel>
42+
<AndroidManagedSymbols>true</AndroidManagedSymbols>
43+
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
44+
</PropertyGroup>
45+
<ItemGroup>
46+
<Reference Include="Mono.Android" />
47+
<Reference Include="System" />
48+
<Reference Include="System.Core" />
49+
<Reference Include="System.Xml.Linq" />
50+
<Reference Include="System.Xml" />
51+
<Reference Include="System.Numerics" />
52+
<Reference Include="System.Numerics.Vectors" />
53+
</ItemGroup>
54+
<ItemGroup>
55+
<PackageReference Include="Xamarin.Forms" Version="4.3.0.908675" />
56+
<PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
57+
</ItemGroup>
58+
<ItemGroup>
59+
<Compile Include="MainActivity.cs" />
60+
<Compile Include="Resources\Resource.designer.cs" />
61+
<Compile Include="Properties\AssemblyInfo.cs" />
62+
</ItemGroup>
63+
<ItemGroup>
64+
<None Include="Properties\AndroidManifest.xml" />
65+
</ItemGroup>
66+
<ItemGroup>
67+
<AndroidResource Include="Resources\layout\Tabbar.xml" />
68+
<AndroidResource Include="Resources\layout\Toolbar.xml" />
69+
<AndroidResource Include="Resources\values\styles.xml" />
70+
<AndroidResource Include="Resources\values\colors.xml" />
71+
<AndroidResource Include="Resources\mipmap-anydpi-v26\icon.xml" />
72+
<AndroidResource Include="Resources\mipmap-anydpi-v26\icon_round.xml" />
73+
<AndroidResource Include="Resources\mipmap-hdpi\icon.png" />
74+
<AndroidResource Include="Resources\mipmap-hdpi\launcher_foreground.png" />
75+
<AndroidResource Include="Resources\mipmap-mdpi\icon.png" />
76+
<AndroidResource Include="Resources\mipmap-mdpi\launcher_foreground.png" />
77+
<AndroidResource Include="Resources\mipmap-xhdpi\icon.png" />
78+
<AndroidResource Include="Resources\mipmap-xhdpi\launcher_foreground.png" />
79+
<AndroidResource Include="Resources\mipmap-xxhdpi\icon.png" />
80+
<AndroidResource Include="Resources\mipmap-xxhdpi\launcher_foreground.png" />
81+
<AndroidResource Include="Resources\mipmap-xxxhdpi\icon.png" />
82+
<AndroidResource Include="Resources\mipmap-xxxhdpi\launcher_foreground.png" />
83+
</ItemGroup>
84+
<ItemGroup>
85+
<Folder Include="Resources\drawable\" />
86+
</ItemGroup>
87+
<ItemGroup>
88+
<ProjectReference Include="..\BenchmarkDotNet.Samples.Forms\BenchmarkDotNet.Samples.Forms.csproj">
89+
<Project>{EF54613D-8A3D-42DB-BF98-AD95C582FEF3}</Project>
90+
<Name>BenchmarkDotNet.Samples.Forms</Name>
91+
</ProjectReference>
92+
</ItemGroup>
93+
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
94+
</Project>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using System;
2+
3+
using Android.App;
4+
using Android.Content.PM;
5+
using Android.Runtime;
6+
using Android.Views;
7+
using Android.Widget;
8+
using Android.OS;
9+
10+
namespace BenchmarkDotNet.Samples.Forms.Droid
11+
{
12+
[Activity(Label = "BenchmarkDotNet.Samples.Forms", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
13+
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
14+
{
15+
protected override void OnCreate(Bundle savedInstanceState)
16+
{
17+
TabLayoutResource = Resource.Layout.Tabbar;
18+
ToolbarResource = Resource.Layout.Toolbar;
19+
20+
base.OnCreate(savedInstanceState);
21+
22+
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
23+
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
24+
LoadApplication(new App());
25+
}
26+
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
27+
{
28+
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
29+
30+
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
31+
}
32+
}
33+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.benchmarkdotnet.samples">
3+
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
4+
<application android:label="BenchmarkDotNet.Samples.Android"></application>
5+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
6+
</manifest>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using System.Reflection;
2+
using System.Runtime.CompilerServices;
3+
using System.Runtime.InteropServices;
4+
using Android.App;
5+
6+
// General Information about an assembly is controlled through the following
7+
// set of attributes. Change these attribute values to modify the information
8+
// associated with an assembly.
9+
[assembly: AssemblyTitle("BenchmarkDotNet.Samples.Forms.Android")]
10+
[assembly: AssemblyDescription("")]
11+
[assembly: AssemblyConfiguration("")]
12+
[assembly: AssemblyCompany("")]
13+
[assembly: AssemblyProduct("BenchmarkDotNet.Samples.Forms.Android")]
14+
[assembly: AssemblyCopyright("Copyright © 2014")]
15+
[assembly: AssemblyTrademark("")]
16+
[assembly: AssemblyCulture("")]
17+
[assembly: ComVisible(false)]
18+
19+
// Version information for an assembly consists of the following four values:
20+
//
21+
// Major Version
22+
// Minor Version
23+
// Build Number
24+
// Revision
25+
//
26+
// You can specify all the values or you can default the Build and Revision Numbers
27+
// by using the '*' as shown below:
28+
// [assembly: AssemblyVersion("1.0.*")]
29+
[assembly: AssemblyVersion("1.0.0.0")]
30+
[assembly: AssemblyFileVersion("1.0.0.0")]
31+
32+
// Add some common permissions, these can be removed if not needed
33+
[assembly: UsesPermission(Android.Manifest.Permission.Internet)]
34+
[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<android.support.design.widget.TabLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
android:id="@+id/sliding_tabs"
5+
android:layout_width="match_parent"
6+
android:layout_height="wrap_content"
7+
android:background="?attr/colorPrimary"
8+
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
9+
app:tabIndicatorColor="@android:color/white"
10+
app:tabGravity="fill"
11+
app:tabMode="fixed" />
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<android.support.v7.widget.Toolbar
2+
xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:id="@+id/toolbar"
4+
android:layout_width="match_parent"
5+
android:layout_height="wrap_content"
6+
android:background="?attr/colorPrimary"
7+
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
8+
android:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
9+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3+
<background android:drawable="@color/launcher_background" />
4+
<foreground android:drawable="@mipmap/launcher_foreground" />
5+
</adaptive-icon>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3+
<background android:drawable="@color/launcher_background" />
4+
<foreground android:drawable="@mipmap/launcher_foreground" />
5+
</adaptive-icon>
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<color name="launcher_background">#FFFFFF</color>
4+
<color name="colorPrimary">#3F51B5</color>
5+
<color name="colorPrimaryDark">#303F9F</color>
6+
<color name="colorAccent">#FF4081</color>
7+
</resources>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<resources>
3+
4+
<style name="MainTheme" parent="MainTheme.Base">
5+
</style>
6+
<!-- Base theme applied no matter what API -->
7+
<style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
8+
<!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
9+
<item name="windowNoTitle">true</item>
10+
<!--We will be using the toolbar so no need to show ActionBar-->
11+
<item name="windowActionBar">false</item>
12+
<!-- Set theme colors from https://aka.ms/material-colors -->
13+
<!-- colorPrimary is used for the default action bar background -->
14+
<item name="colorPrimary">#2196F3</item>
15+
<!-- colorPrimaryDark is used for the status bar -->
16+
<item name="colorPrimaryDark">#1976D2</item>
17+
<!-- colorAccent is used as the default value for colorControlActivated
18+
which is used to tint widgets -->
19+
<item name="colorAccent">#FF4081</item>
20+
<!-- You can also set colorControlNormal, colorControlActivated
21+
colorControlHighlight and colorSwitchThumbNormal. -->
22+
<item name="windowActionModeOverlay">true</item>
23+
24+
<item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
25+
</style>
26+
27+
<style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
28+
<item name="colorAccent">#FF4081</item>
29+
</style>
30+
</resources>
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup>
4+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
5+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
6+
<ProductVersion>8.0.30703</ProductVersion>
7+
<SchemaVersion>2.0</SchemaVersion>
8+
<ProjectGuid>{63451FB9-9B44-428B-839E-1157C3063E43}</ProjectGuid>
9+
<ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
10+
<TemplateGuid>{122416d6-6b49-4ee2-a1e8-b825f31c79fe}</TemplateGuid>
11+
<OutputType>Library</OutputType>
12+
<AppDesignerFolder>Properties</AppDesignerFolder>
13+
<RootNamespace>BenchmarkDotNet.Samples.Android</RootNamespace>
14+
<AssemblyName>BenchmarkDotNet.Samples.Android</AssemblyName>
15+
<FileAlignment>512</FileAlignment>
16+
<AndroidApplication>True</AndroidApplication>
17+
<AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
18+
<AndroidResgenClass>Resource</AndroidResgenClass>
19+
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
20+
<AndroidUseLatestPlatformSdk>false</AndroidUseLatestPlatformSdk>
21+
<TargetFrameworkVersion>v9.0</TargetFrameworkVersion>
22+
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
23+
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
24+
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
25+
<AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
26+
<AndroidUseAapt2>true</AndroidUseAapt2>
27+
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
28+
</PropertyGroup>
29+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
30+
<DebugSymbols>True</DebugSymbols>
31+
<DebugType>portable</DebugType>
32+
<Optimize>False</Optimize>
33+
<OutputPath>bin\Debug\</OutputPath>
34+
<DefineConstants>DEBUG;TRACE</DefineConstants>
35+
<ErrorReport>prompt</ErrorReport>
36+
<WarningLevel>4</WarningLevel>
37+
<AndroidUseSharedRuntime>True</AndroidUseSharedRuntime>
38+
<AndroidLinkMode>None</AndroidLinkMode>
39+
<EmbedAssembliesIntoApk>False</EmbedAssembliesIntoApk>
40+
</PropertyGroup>
41+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
42+
<DebugSymbols>True</DebugSymbols>
43+
<DebugType>portable</DebugType>
44+
<Optimize>True</Optimize>
45+
<OutputPath>bin\Release\</OutputPath>
46+
<DefineConstants>TRACE</DefineConstants>
47+
<ErrorReport>prompt</ErrorReport>
48+
<WarningLevel>4</WarningLevel>
49+
<AndroidManagedSymbols>true</AndroidManagedSymbols>
50+
<AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
51+
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
52+
<EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>
53+
<AndroidSupportedAbis>armeabi-v7a;arm64-v8a;x86</AndroidSupportedAbis>
54+
</PropertyGroup>
55+
<ItemGroup>
56+
<Reference Include="System" />
57+
<Reference Include="System.Xml" />
58+
<Reference Include="System.Core" />
59+
<Reference Include="Mono.Android" />
60+
<Reference Include="System.Numerics" />
61+
<Reference Include="System.Numerics.Vectors" />
62+
</ItemGroup>
63+
<ItemGroup>
64+
<Compile Include="MainActivity.cs" />
65+
<Compile Include="Resources\Resource.designer.cs" />
66+
<Compile Include="Properties\AssemblyInfo.cs" />
67+
</ItemGroup>
68+
<ItemGroup>
69+
<None Include="Properties\AndroidManifest.xml" />
70+
</ItemGroup>
71+
<ItemGroup>
72+
<AndroidResource Include="Resources\layout\activity_main.xml">
73+
<SubType>Designer</SubType>
74+
</AndroidResource>
75+
<AndroidResource Include="Resources\values\colors.xml" />
76+
<AndroidResource Include="Resources\values\ic_launcher_background.xml" />
77+
<AndroidResource Include="Resources\values\strings.xml" />
78+
<AndroidResource Include="Resources\values\styles.xml" />
79+
<AndroidResource Include="Resources\mipmap-anydpi-v26\ic_launcher.xml" />
80+
<AndroidResource Include="Resources\mipmap-anydpi-v26\ic_launcher_round.xml" />
81+
<AndroidResource Include="Resources\mipmap-hdpi\ic_launcher.png" />
82+
<AndroidResource Include="Resources\mipmap-hdpi\ic_launcher_foreground.png" />
83+
<AndroidResource Include="Resources\mipmap-hdpi\ic_launcher_round.png" />
84+
<AndroidResource Include="Resources\mipmap-mdpi\ic_launcher.png" />
85+
<AndroidResource Include="Resources\mipmap-mdpi\ic_launcher_foreground.png" />
86+
<AndroidResource Include="Resources\mipmap-mdpi\ic_launcher_round.png" />
87+
<AndroidResource Include="Resources\mipmap-xhdpi\ic_launcher.png" />
88+
<AndroidResource Include="Resources\mipmap-xhdpi\ic_launcher_foreground.png" />
89+
<AndroidResource Include="Resources\mipmap-xhdpi\ic_launcher_round.png" />
90+
<AndroidResource Include="Resources\mipmap-xxhdpi\ic_launcher.png" />
91+
<AndroidResource Include="Resources\mipmap-xxhdpi\ic_launcher_foreground.png" />
92+
<AndroidResource Include="Resources\mipmap-xxhdpi\ic_launcher_round.png" />
93+
<AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher.png" />
94+
<AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher_foreground.png" />
95+
<AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher_round.png" />
96+
</ItemGroup>
97+
<ItemGroup>
98+
<Folder Include="Resources\drawable\" />
99+
</ItemGroup>
100+
<ItemGroup>
101+
<PackageReference Include="Xamarin.Android.Support.Design" Version="28.0.0.3" />
102+
<PackageReference Include="Xamarin.Android.Support.Core.Utils" Version="28.0.0.3" />
103+
<PackageReference Include="Xamarin.Android.Support.CustomTabs" Version="28.0.0.3" />
104+
</ItemGroup>
105+
<ItemGroup>
106+
<ProjectReference Include="..\..\src\BenchmarkDotNet\BenchmarkDotNet.csproj">
107+
<Project>{af1e6f8a-5c63-465f-96f4-5e5f183a33b9}</Project>
108+
<Name>BenchmarkDotNet</Name>
109+
</ProjectReference>
110+
<ProjectReference Include="..\BenchmarkDotNet.Samples\BenchmarkDotNet.Samples.csproj">
111+
<Project>{eb38672b-12ab-465e-8132-b0e323a510c8}</Project>
112+
<Name>BenchmarkDotNet.Samples</Name>
113+
</ProjectReference>
114+
</ItemGroup>
115+
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
116+
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
117+
Other similar extension points exist, see Microsoft.Common.targets.
118+
<Target Name="BeforeBuild">
119+
</Target>
120+
<Target Name="AfterBuild">
121+
</Target>
122+
-->
123+
</Project>

0 commit comments

Comments
 (0)