Bridges the worlds of .NET with the native APIs of macOS, iOS, tvOS, and watchOS.
Перейти к файлу
Ankit Jain f865694f86 Move tests to use new tool xibuild and thus fix msbuild tests (#5128)
* xibuild: New wrapper tool to run msbuild or managed executables

MSBuild supports fallback paths for projects imported using
`$(MSBuildExtensionsPath)`, but these must be specified explicitly in
the app.config of the main executable. There was a PR to allow use of
properties for this in the app.config, but that was not accepted
upstream.

This is required for being able to:

1. build projects with msbuild against the in-tree XI/XM build output
2. and to run nunit tests against the same.

For this we introduce a new tool, `xibuild`, based on XA's `xabuild`.
This supports the fallback paths to be specified via the environment variable
`MSBuildExtensionsPathFallbackPathsOverride`[1].
It essentially operates in 3 modes:

1. `xibuild -c /path/to/foo.exe`
	Generates /path/to/foo.exe.config with the fallback paths inserted into that.

2. `xibuild -- /v:diag /path/to/project.csproj`
	Runs msbuild with the arguments after `--` with a custom app.config based on
	`MSBuild.dll.config`, with the fallback paths correctly inserted.
	This is in a temporary file and the original config file is not touched.

3. `xibuild -t -- /path/to/managed_tool.exe args`
	Generates `/path/to/managed_tool.exe.config` based on `MSBuild.dll.config` with
	the fallback paths inserted, and runs `managed_tool.exe` with the arguments.
	The default is to overwrite the config file.
	But there is also a switch to merge it with an existing config file.

--
1. Value of the environment variable $MSBuildExtensionsPathFallbackPathsOverride
is prepended to any existing list of search paths in `MSBuild.dll.config`, IOW,
it takes precedence. So, the order of lookup becomes:

  - Value of the property `$(MSBuildExtensionsPath)`
  - Value of the environment variable `$MSBuildExtensionsPathFallbackPathsOverride`
  - /Library/Frameworks/Mono.framework/External/xbuild on macOS

* Integrate use of `xibuild` with the tests

Update all uses of `msbuild` and invocations of tools like nunit that
might depend on using the in-tree builds to use `xibuild`.

* xibuild: Move help descriptions to OptionSet itself.
2018-11-16 14:24:35 -05:00
builds Fix min macOS version confusion. (#5080) 2018-11-05 14:46:41 +01:00
docs [mmp] Fix typo (#5123) 2018-11-13 17:56:05 -05:00
external Bump to mono:2018-06 (#5115) 2018-11-09 16:54:29 -05:00
fsharp Clone files if possible whenever it makes sense. (#5049) 2018-10-29 16:09:30 +01:00
jenkins [jenkins] Run the 'Test docs' step even if the 'Run tests' step failed. (#5106) 2018-11-08 16:24:56 +01:00
mk Update dependencies to their heads (#5091) 2018-11-06 13:28:41 -05:00
mono/4.5 [build] Add .NET Core open source key 2017-03-14 11:47:06 +01:00
msbuild Move tests to use new tool xibuild and thus fix msbuild tests (#5128) 2018-11-16 14:24:35 -05:00
opentk Clone files if possible whenever it makes sense. (#5049) 2018-10-29 16:09:30 +01:00
runtime Fix min macOS version confusion. (#5080) 2018-11-05 14:46:41 +01:00
src Remove some [Sealed] in XAMCORE_4_0 where not necessary (#5108) 2018-11-12 14:51:35 -06:00
tests Move tests to use new tool xibuild and thus fix msbuild tests (#5128) 2018-11-16 14:24:35 -05:00
tools Move tests to use new tool xibuild and thus fix msbuild tests (#5128) 2018-11-16 14:24:35 -05:00
.gitignore [Tests] Add a new iOS app to run the xunit and nunit tests (#4914) 2018-11-16 13:31:40 -05:00
.gitmodules Get the F# binaries from macios-binaries instead of building them every time. (#5015) 2018-10-19 16:54:44 +02:00
CODEOWNERS Merge branch 'd15-8' into xcode10-rebase-15.8 2018-08-13 21:04:56 -04:00
ISSUE_TEMPLATE.md Update ISSUE_TEMPLATE.md (#4233) 2018-06-12 17:26:51 -04:00
LICENSE Adjust license to match requested format 2016-04-25 16:38:57 -04:00
Make.config Move tests to use new tool xibuild and thus fix msbuild tests (#5128) 2018-11-16 14:24:35 -05:00
Make.versions Try to make version numbers clearer, and establish some ground rules. (#4927) 2018-10-04 13:49:26 -04:00
Makefile Clone files if possible whenever it makes sense. (#5049) 2018-10-29 16:09:30 +01:00
NuGet.config Add a 'repositorypath' to our NuGet.Config and update paths everywhere accordingly. (#1110) 2016-11-04 09:13:33 +01:00
README.md Update README.md (#3587) 2018-02-26 14:31:49 -05:00
Versions-ios.plist.in Bump for Xcode 10.1 beta 1 (#4836) 2018-09-19 08:56:43 -04:00
Versions-mac.plist.in Revert "Update min macOS version in Versions-mac.plist" 2018-07-25 11:56:29 +02:00
Xamarin.Mac.sln [tests][mmp] Move TypeDescriptor (regression) tests to unit tests (#4994) 2018-10-17 08:25:37 -04:00
Xamarin.iOS.sln Remove unusued project configuration ('DebugStaticRegistrar') from Xamarin.iOS.sln. 2018-08-23 12:32:09 +02:00
banner.png [README] Add Xamarin.iOS + Xamarin.Mac banner (#1665) 2017-02-08 17:42:48 -05:00
configure Bump to mono:2018-06 (#4277) 2018-10-10 11:02:28 -04:00
product.snk Add our mono runtimes to the build. 2016-04-24 14:47:24 -04:00
system-dependencies.sh Merge branch 'xcode10' 2018-09-18 14:12:39 -04:00
versions-check.csharp [Versions-ios.plist] watchOS started at 1.0 (#1328) 2016-12-13 10:52:58 +01:00

README.md

Xamarin.iOS + Xamarin.Mac logo

Xamarin.iOS & Xamarin.Mac

Status
master xamarin-macios-builds-master

Welcome!

This module is the main repository for both Xamarin.iOS and Xamarin.Mac.

These SDKs allow us to create native iOS, tvOS, watchOS and macOS applications using the same UI controls we would in Objective-C and Xcode, except with the flexibility and elegance of a modern language (C#), the power of the .NET Base Class Library (BCL), and two first-class IDEs—Visual Studio for Mac and Visual Studio—at our fingertips.

This repository is where we do development for the Xamarin.iOS and Xamarin.Mac SDKs. There are a few ways that you can contribute, for example:

Contributing

If you are interested in fixing issues and contributing directly to the code base, please see the document How to Contribute, which covers the following:

Feedback

Gitter

License

Copyright (c) .NET Foundation Contributors. All rights reserved. Licensed under the MIT License.