Browse Source

Merge Designer HostApps into a single project. Pack Designer hosts into the Avalonia package like before.

test-meta-packages
Jeremy Koritzinsky 8 years ago
parent
commit
ee1833ff8f
  1. 23
      packages/Avalonia/Avalonia.csproj
  2. 25
      src/tools/Avalonia.Designer.HostApp.NetFX/Avalonia.Designer.HostApp.NetFX.csproj
  3. 42
      src/tools/Avalonia.Designer.HostApp.NetFX/Program.cs
  4. 8
      src/tools/Avalonia.Designer.HostApp.NetFX/Properties/launchSettings.json
  5. 7
      src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
  6. 47
      src/tools/Avalonia.Designer.HostApp/Program.cs

23
packages/Avalonia/Avalonia.csproj

@ -7,6 +7,29 @@
<ProjectReference Include="../../src/Avalonia.Remote.Protocol/Avalonia.Remote.Protocol.csproj" EmbedReference="false" />
</ItemGroup>
<PropertyGroup>
<DesignerHostAppPath>../../src/tools</DesignerHostAppPath>
</PropertyGroup>
<Target Name="AddDesignerHostAppsToPackage" BeforeTargets="GenerateNuspec">
<MSBuild Projects="$(DesignerHostAppPath)/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj"
Properties="Configuration=$(Configuration);
Platform=$(Platform)" />
<ItemGroup>
<_PackageFiles Include="$(DesignerHostAppPath)/Avalonia.Designer.HostApp/bin/$(Configuration)/netcoreapp2.0/Avalonia.Designer.HostApp.dll">
<PackagePath>tools/netcoreapp2.0/designer</PackagePath>
<Visible>false</Visible>
<BuildAction>None</BuildAction>
</_PackageFiles>
<_PackageFiles Include="$(DesignerHostAppPath)/Avalonia.Designer.HostApp/bin/$(Configuration)/net461/Avalonia.Designer.HostApp.exe">
<PackagePath>tools/net461/designer</PackagePath>
<Visible>false</Visible>
<BuildAction>None</BuildAction>
</_PackageFiles>
</ItemGroup>
</Target>
<Import Project="..\..\build\SharedVersion.props" />
<Import Project="..\..\build\NetFX.props" />
<Import Project="..\..\build\CoreLibraries.props" />

25
src/tools/Avalonia.Designer.HostApp.NetFX/Avalonia.Designer.HostApp.NetFX.csproj

@ -1,25 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>net461</TargetFrameworks>
<AssemblyName>Avalonia.Designer.HostApp</AssemblyName>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\Avalonia.DesignerSupport\Avalonia.DesignerSupport.csproj" />
<ProjectReference Include="..\..\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj" />
<ProjectReference Include="..\..\Markup\Avalonia.Markup\Avalonia.Markup.csproj" />
<ProjectReference Include="..\..\Avalonia.Animation\Avalonia.Animation.csproj" />
<ProjectReference Include="..\..\Avalonia.Base\Avalonia.Base.csproj" />
<ProjectReference Include="..\..\Avalonia.Controls\Avalonia.Controls.csproj" />
<ProjectReference Include="..\..\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj" />
<ProjectReference Include="..\..\Avalonia.Input\Avalonia.Input.csproj" />
<ProjectReference Include="..\..\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
<ProjectReference Include="..\..\Avalonia.Layout\Avalonia.Layout.csproj" />
<ProjectReference Include="..\..\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
<ProjectReference Include="..\..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
<ProjectReference Include="..\..\Avalonia.Styling\Avalonia.Styling.csproj" />
<ProjectReference Include="..\..\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
<ProjectReference Include="..\..\..\samples\ControlCatalog.Desktop\ControlCatalog.Desktop.csproj" />
</ItemGroup>
<Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\..\build\NetFX.props" />
</Project>

42
src/tools/Avalonia.Designer.HostApp.NetFX/Program.cs

@ -1,42 +0,0 @@
using System;
using System.IO;
using System.Reflection;
namespace Avalonia.Designer.HostApp.NetFX
{
class Program
{
private static string s_appDir;
public static void Main(string[] args)
{
s_appDir = Directory.GetCurrentDirectory();
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
foreach (var dll in Directory.GetFiles(s_appDir, "*.dll"))
{
try
{
Console.WriteLine("Loading " + dll);
Assembly.LoadFile(dll);
}
catch
{
}
}
Exec(args);
}
static void Exec(string[] args)
{
Avalonia.DesignerSupport.Remote.RemoteDesignerEntryPoint.Main(args);
}
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string assemblyPath = Path.Combine(s_appDir, new AssemblyName(args.Name).Name + ".dll");
if (File.Exists(assemblyPath) == false) return null;
Assembly assembly = Assembly.LoadFrom(assemblyPath);
return assembly;
}
}
}

8
src/tools/Avalonia.Designer.HostApp.NetFX/Properties/launchSettings.json

@ -1,8 +0,0 @@
{
"profiles": {
"Avalonia.Designer.HostApp.NetFX": {
"commandName": "Project",
"commandLineArgs": "--transport tcp-bson://127.0.0.1:25000/ bin/Debug/net461/ControlCatalog.Desktop.exe"
}
}
}

7
src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp2.0</TargetFrameworks>
<TargetFrameworks>net461;netcoreapp2.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\Avalonia.DesignerSupport\Avalonia.DesignerSupport.csproj" />
@ -15,10 +14,8 @@
<ProjectReference Include="..\..\Avalonia.Input\Avalonia.Input.csproj" />
<ProjectReference Include="..\..\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
<ProjectReference Include="..\..\Avalonia.Layout\Avalonia.Layout.csproj" />
<ProjectReference Include="..\..\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
<ProjectReference Include="..\..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
<ProjectReference Include="..\..\Avalonia.Styling\Avalonia.Styling.csproj" />
<ProjectReference Include="..\..\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
<ProjectReference Include="..\..\..\samples\ControlCatalog.NetCore\ControlCatalog.NetCore.csproj" />
</ItemGroup>
</Project>
</Project>

47
src/tools/Avalonia.Designer.HostApp/Program.cs

@ -1,10 +1,47 @@

using System;
using System.IO;
using System.Reflection;
namespace Avalonia.Designer.HostApp
namespace Avalonia.Designer.HostApp.NetFX
{
class Program
{
public static void Main(string[] args)
=> Avalonia.DesignerSupport.Remote.RemoteDesignerEntryPoint.Main(args);
#if NET461
private static string s_appDir;
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string assemblyPath = Path.Combine(s_appDir, new AssemblyName(args.Name).Name + ".dll");
if (File.Exists(assemblyPath) == false) return null;
Assembly assembly = Assembly.LoadFrom(assemblyPath);
return assembly;
}
public static void Main(string[] args)
{
s_appDir = Directory.GetCurrentDirectory();
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
foreach (var dll in Directory.GetFiles(s_appDir, "*.dll"))
{
try
{
Console.WriteLine("Loading " + dll);
Assembly.LoadFile(dll);
}
catch
{
}
}
Exec(args);
}
static void Exec(string[] args)
#elif NETCOREAPP2_0
public static void Main(string[] args)
#endif
{
Avalonia.DesignerSupport.Remote.RemoteDesignerEntryPoint.Main(args);
}
}
}
}

Loading…
Cancel
Save