committed by
GitHub
11 changed files with 401 additions and 1448 deletions
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -1,69 +1,89 @@ |
|||
# Building Avalonia |
|||
# Building Avalonia |
|||
|
|||
## Windows |
|||
|
|||
Avalonia requires Visual Studio 2015 to build on Windows. |
|||
Avalonia requires at least Visual Studio 2015 to build on Windows. |
|||
|
|||
### Install GTK Sharp |
|||
|
|||
For the moment under windows, you must have [gtk-sharp](http://www.mono-project.com/download/#download-win) installed. Note that after installing the package your machine may require a restart before GTK# is added to your path. We hope to remove or make this dependency optional at some point in the future. |
|||
For the moment under windows, you must have [gtk-sharp](http://www.mono-project.com/download/#download-win) |
|||
installed. Note that after installing the package your machine may require a restart before GTK# is |
|||
added to your path. We hope to remove or make this dependency optional at some point in the future. |
|||
|
|||
### Clone the Avalonia repository |
|||
|
|||
git clone https://github.com/AvaloniaUI/Avalonia.git |
|||
``` |
|||
git clone https://github.com/AvaloniaUI/Avalonia.git |
|||
git submodule update --init |
|||
``` |
|||
|
|||
We currently need to build our own private version of some libraries. These are linked as submodules in the git repository, so run: |
|||
### Open in Visual Studio |
|||
|
|||
Open the `Avalonia.sln` solution in Visual Studio 2015 or newer. The free Visual Studio Community |
|||
edition works fine. Run the `Samples\ControlCatalog.Desktop` project to see the sample application. |
|||
|
|||
git submodule update --init |
|||
|
|||
## Linux |
|||
|
|||
### Install the latest version of Mono |
|||
|
|||
To build Avalonia under Linux, you need to have a recent version of Mono installed. |
|||
Mono is a cross-platform, open source .Net platform. |
|||
There is a very good chance that the version of Mono that came with your Linux distribution |
|||
is too old, so you want to install a more up-to-date version. The most convenient way to to this |
|||
is through your package manager. The Mono project has great |
|||
[installation instructions for many popular Linux |
|||
distros](http://www.mono-project.com/docs/getting-started/install/linux). |
|||
To build Avalonia under Linux, you need to have a recent version of Mono installed. Mono is a cross- |
|||
platform, open source .Net platform. There is a very good chance that the version of Mono that came |
|||
with your Linux distribution is too old, so you want to install a more up-to-date version. The most |
|||
convenient way to to this is through your package manager. The Mono project has great [installation |
|||
instructions for many popular Linux distros](http://www.mono-project.com/docs/getting-started/install/linux). |
|||
|
|||
This will make the most up-to-date Mono release available through |
|||
your package manager, and offer you updates as they become available. |
|||
This will make the most up-to-date Mono release available through your package manager, and offer |
|||
you updates as they become available. |
|||
|
|||
Once you have your package manager configured for the Mono repository, install the required |
|||
packages: |
|||
* mono-devel |
|||
* referenceassemblies-pcl |
|||
* monodevelop |
|||
Once you have your package manager configured for the Mono repository, install the `mono-devel` |
|||
package, for example on ubuntu: |
|||
|
|||
### Clone the Avalonia repository |
|||
``` |
|||
sudo apt-get install mono-devel |
|||
``` |
|||
|
|||
git clone https://github.com/AvaloniaUI/Avalonia.git |
|||
Once installed, check the version of mono to ensure it's at least 4.4.2: |
|||
|
|||
### Update the submodules |
|||
``` |
|||
mono --version |
|||
``` |
|||
|
|||
The Avalonia repository contains a few submodules, which need to be manually updated. |
|||
### Clone the Avalonia repository |
|||
|
|||
git submodule update --init |
|||
``` |
|||
git clone https://github.com/AvaloniaUI/Avalonia.git |
|||
git submodule update --init |
|||
``` |
|||
|
|||
### Restore nuget packages |
|||
|
|||
Unless you have a very current version of monodevelop (6.1.x or newer), it is necessary to manually |
|||
restore the Nuget depdendencies: |
|||
``` |
|||
cd Avalonia |
|||
mkdir -p .nuget |
|||
wget -O .nuget/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe |
|||
mono .nuget/nuget.exe restore Avalonia.sln |
|||
``` |
|||
|
|||
cd Avalonia |
|||
mkdir -p .nuget |
|||
wget -O .nuget/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe |
|||
mono .nuget/nuget.exe restore Avalonia.mono.sln |
|||
### Build and Run Avalonia |
|||
|
|||
### Build Avalonia |
|||
To build Avalonia in the `Debug` configuration: |
|||
|
|||
Start MonoDevelop and open the `Avalonia.sln` solution. Set the Samples/TestApplication |
|||
project as the startup project and click Run. |
|||
``` |
|||
xbuild /p:Platform=Mono /p:Configuration=Debug Avalonia.sln |
|||
``` |
|||
|
|||
There will be some compile errors in tests for the Windows platform, which can be safely |
|||
ignored. |
|||
You should now be able to run the ControlCatalog sample: |
|||
|
|||
``` |
|||
mono ./samples/ControlCatalog/bin/Debug/ControlCatalog.exe |
|||
``` |
|||
|
|||
### Building Avalonia in MonoDevelop |
|||
|
|||
Unless you have a very current version of monodevelop (6.1.x or newer), it is necessary to manually |
|||
restore the Nuget depdendencies as [mentioned above](#restore-nuget-packages). You must then |
|||
disable MonoDevelop's inbuilt NuGet package manager add-in by going to `Tools -> Add-in Manager` or |
|||
it will complain that a newer version of NuGet is needed. |
|||
|
|||
Enjoy playing with Avalonia! You may want to explore some of the other Samples for a |
|||
flavor of the Platform |
|||
Finally, select the `Debug | Mono` or `Release | Mono` build configuration and you should be good to |
|||
go! |
|||
|
|||
@ -1,14 +1,14 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<configuration> |
|||
<startup> |
|||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" /> |
|||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/> |
|||
</startup> |
|||
<runtime> |
|||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> |
|||
<dependentAssembly> |
|||
<assemblyIdentity name="Mono.Cairo" publicKeyToken="0738eb9f132ed756" culture="neutral" /> |
|||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> |
|||
<assemblyIdentity name="Mono.Cairo" publicKeyToken="0738eb9f132ed756" culture="neutral"/> |
|||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/> |
|||
</dependentAssembly> |
|||
</assemblyBinding> |
|||
</runtime> |
|||
</configuration> |
|||
</configuration> |
|||
|
|||
@ -1,14 +1,14 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<configuration> |
|||
<startup> |
|||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> |
|||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/> |
|||
</startup> |
|||
<runtime> |
|||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> |
|||
<dependentAssembly> |
|||
<assemblyIdentity name="Mono.Cairo" publicKeyToken="0738eb9f132ed756" culture="neutral" /> |
|||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> |
|||
<assemblyIdentity name="Mono.Cairo" publicKeyToken="0738eb9f132ed756" culture="neutral"/> |
|||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/> |
|||
</dependentAssembly> |
|||
</assemblyBinding> |
|||
</runtime> |
|||
</configuration> |
|||
</configuration> |
|||
|
|||
Loading…
Reference in new issue