mirror of
https://github.com/ZuneDev/ZuneUIXTools.git
synced 2026-07-27 13:11:59 -07:00
Added beginnings of Iris VSIX
This commit is contained in:
@@ -338,3 +338,6 @@ ASALocalRun/
|
|||||||
|
|
||||||
# BeatPulse healthcheck temp database
|
# BeatPulse healthcheck temp database
|
||||||
healthchecksdb
|
healthchecksdb
|
||||||
|
/VSIX/IrisProjTemplate/UIXsup.dll
|
||||||
|
/VSIX/IrisProjTemplate/UIXrender.dll
|
||||||
|
/VSIX/IrisProjTemplate/UIX.renderapi.dll
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
|
<UseWPF>true</UseWPF>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<UsingTask AssemblyFile="D:\Repos\yoshiask\ZuneUIXTools\VSIX\UIXBuildTask\bin\Debug\UIXBuildTask.dll" TaskName="UIXBuild" />
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<UIXSources Include="**\*.uix" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Remove="UIX.renderapi.dll" />
|
||||||
|
<None Remove="UIXrender.dll" />
|
||||||
|
<None Remove="UIXsup.dll" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ContentWithTargetPath Include="lib\UIX.dll">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
<TargetPath>UIX.dll</TargetPath>
|
||||||
|
</ContentWithTargetPath>
|
||||||
|
<ContentWithTargetPath Include="lib\UIX.renderapi.dll">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
<TargetPath>UIX.renderapi.dll</TargetPath>
|
||||||
|
</ContentWithTargetPath>
|
||||||
|
<ContentWithTargetPath Include="lib\UIXrender.dll">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
<TargetPath>UIXrender.dll</TargetPath>
|
||||||
|
</ContentWithTargetPath>
|
||||||
|
<ContentWithTargetPath Include="lib\UIXsup.dll">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
<TargetPath>UIXsup.dll</TargetPath>
|
||||||
|
</ContentWithTargetPath>
|
||||||
|
|
||||||
|
<Reference Include="UIX">
|
||||||
|
<HintPath>lib\UIX.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UIX.RenderApi">
|
||||||
|
<HintPath>lib\UIX.renderapi.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="true">
|
||||||
|
<!--<Exec Command="D:\Repos\yoshiask\ZuneUIXTools\UIXBuild\bin\Debug\netcoreapp3.1\UIXBuild.exe "$(ProjectPath)" "$(TargetDir)""
|
||||||
|
Inputs="$(ProjectPath)" Outputs="$(TargetDir)"/>-->
|
||||||
|
<UIXBuild SourceFiles="@(UIXSources)" CompiledOutputDir="$(TargetDir)Resources" MSBuildArchitecture="x64" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<!--<Target Name="PostBuild" AfterTargets="PostBuildEvent">
|
||||||
|
<Exec Command="D:\Repos\yoshiask\ZuneUIXTools\UIXBuild\bin\Debug\netcoreapp3.1\UIXBuild.exe $(ProjectPath) $(TargetDir)" />
|
||||||
|
</Target>-->
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
using Microsoft.Iris;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace IrisProjTemplate
|
||||||
|
{
|
||||||
|
class Program
|
||||||
|
{
|
||||||
|
// The name of the UIX file to load on startup (excluding the file extension)
|
||||||
|
// If left blank, Iris will load "Default"
|
||||||
|
private const string StartupUIX = "MainPage";
|
||||||
|
|
||||||
|
// The name of the root UI element
|
||||||
|
private const string UIRoot = "";
|
||||||
|
|
||||||
|
static void Main(string[] args)
|
||||||
|
{
|
||||||
|
Application.Initialize();
|
||||||
|
Application.Window.SetBackgroundColor(new WindowColor(0xE6, 0xE6, 0xE6));
|
||||||
|
Load(StartupUIX, UIRoot);
|
||||||
|
Application.Run();
|
||||||
|
|
||||||
|
// Any code after this point is run after the main program exits
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Requests the specified UIX file to be loaded into the application window
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="startupUIX">The name of the UIX file to load on startup (excluding the file extension)</param>
|
||||||
|
/// <param name="uiRoot">The name of the root UI element</param>
|
||||||
|
static void Load(string startupUIX, string uiRoot)
|
||||||
|
{
|
||||||
|
string curDir = Directory.GetCurrentDirectory();
|
||||||
|
string uibPath = Path.Combine(curDir, "Resources", startupUIX + ".uib");
|
||||||
|
if (!File.Exists(uibPath))
|
||||||
|
throw new FileNotFoundException($"File '{uibPath}' could not be loaded because it does not exist");
|
||||||
|
|
||||||
|
Application.Window.RequestLoad("file://" + uibPath + (string.IsNullOrEmpty(uiRoot) ? string.Empty : "#" + uiRoot));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<UIX xmlns="http://schemas.microsoft.com/2007/uix">
|
||||||
|
<UI Name="Default">
|
||||||
|
<Content>
|
||||||
|
<Text Color="Red">
|
||||||
|
<Content>Howdy from Microsoft.Iris!</Content>
|
||||||
|
</Text>
|
||||||
|
</Content>
|
||||||
|
</UI>
|
||||||
|
|
||||||
|
<UI Name="Alt">
|
||||||
|
<Content>
|
||||||
|
<Text Color="Blue" Font="Segoe UI">
|
||||||
|
<Content>This is some blue text</Content>
|
||||||
|
</Text>
|
||||||
|
</Content>
|
||||||
|
</UI>
|
||||||
|
</UIX>
|
||||||
Binary file not shown.
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<runtime>
|
||||||
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0"/>
|
||||||
|
</dependentAssembly>
|
||||||
|
</assemblyBinding>
|
||||||
|
<gcAllowVeryLargeObjects enabled="true"/>
|
||||||
|
</runtime>
|
||||||
|
<startup>
|
||||||
|
|
||||||
|
<supportedRuntime version="v2.0.50727"/></startup>
|
||||||
|
</configuration>
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,72 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<MinimumVisualStudioVersion>16.0</MinimumVisualStudioVersion>
|
||||||
|
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectTypeGuids>{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||||
|
<ProjectGuid>{B4EEF46A-3235-42BD-9540-7AAA03BAC77D}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>IrisVSIX</RootNamespace>
|
||||||
|
<AssemblyName>IrisVSIX</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||||
|
<GeneratePkgDefFile>true</GeneratePkgDefFile>
|
||||||
|
<UseCodebase>true</UseCodebase>
|
||||||
|
<IncludeAssemblyInVSIXContainer>true</IncludeAssemblyInVSIXContainer>
|
||||||
|
<IncludeDebugSymbolsInVSIXContainer>false</IncludeDebugSymbolsInVSIXContainer>
|
||||||
|
<IncludeDebugSymbolsInLocalVSIXDeployment>false</IncludeDebugSymbolsInLocalVSIXDeployment>
|
||||||
|
<CopyBuildOutputToOutputDirectory>true</CopyBuildOutputToOutputDirectory>
|
||||||
|
<CopyOutputSymbolsToOutputDirectory>true</CopyOutputSymbolsToOutputDirectory>
|
||||||
|
<StartAction>Program</StartAction>
|
||||||
|
<StartProgram Condition="'$(DevEnvDir)' != ''">$(DevEnvDir)devenv.exe</StartProgram>
|
||||||
|
<StartArguments>/rootsuffix Exp</StartArguments>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="IrisVSIXPackage.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="source.extension.vsixmanifest">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.VisualStudio.SDK" Version="16.0.206" ExcludeAssets="runtime" />
|
||||||
|
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="16.8.3038" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
using Microsoft.VisualStudio.Shell;
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Threading;
|
||||||
|
using Task = System.Threading.Tasks.Task;
|
||||||
|
|
||||||
|
namespace IrisVSIX
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// This is the class that implements the package exposed by this assembly.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>
|
||||||
|
/// The minimum requirement for a class to be considered a valid package for Visual Studio
|
||||||
|
/// is to implement the IVsPackage interface and register itself with the shell.
|
||||||
|
/// This package uses the helper classes defined inside the Managed Package Framework (MPF)
|
||||||
|
/// to do it: it derives from the Package class that provides the implementation of the
|
||||||
|
/// IVsPackage interface and uses the registration attributes defined in the framework to
|
||||||
|
/// register itself and its components with the shell. These attributes tell the pkgdef creation
|
||||||
|
/// utility what data to put into .pkgdef file.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// To get loaded into VS, the package must be referred by <Asset Type="Microsoft.VisualStudio.VsPackage" ...> in .vsixmanifest file.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
|
||||||
|
[Guid(IrisVSIXPackage.PackageGuidString)]
|
||||||
|
public sealed class IrisVSIXPackage : AsyncPackage
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// IrisVSIXPackage GUID string.
|
||||||
|
/// </summary>
|
||||||
|
public const string PackageGuidString = "dcbeab68-84e2-4338-bd7f-330aebb43454";
|
||||||
|
|
||||||
|
#region Package Members
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initialization of the package; this method is called right after the package is sited, so this is the place
|
||||||
|
/// where you can put all the initialization code that rely on services provided by VisualStudio.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="cancellationToken">A cancellation token to monitor for initialization cancellation, which can occur when VS is shutting down.</param>
|
||||||
|
/// <param name="progress">A provider for progress updates.</param>
|
||||||
|
/// <returns>A task representing the async work of package initialization, or an already completed task if there is none. Do not return null from this method.</returns>
|
||||||
|
protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress<ServiceProgressData> progress)
|
||||||
|
{
|
||||||
|
// When initialized asynchronously, the current thread may be a background thread at this point.
|
||||||
|
// Do any initialization that requires the UI thread after switching to the UI thread.
|
||||||
|
await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("IrisVSIX")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("IrisVSIX")]
|
||||||
|
[assembly: AssemblyCopyright("")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
|
||||||
|
<Metadata>
|
||||||
|
<Identity Id="IrisVSIX.d94f4fc2-8bd9-4406-a3aa-d6e1b150381d" Version="1.0" Language="en-US" Publisher="Joshua Askharoun" />
|
||||||
|
<DisplayName>Iris UI Development</DisplayName>
|
||||||
|
<Description xml:space="preserve">Adds development tools and templates for creating apps that utilize Microsoft's Iris UI Framework.</Description>
|
||||||
|
<Preview>true</Preview>
|
||||||
|
</Metadata>
|
||||||
|
<Installation>
|
||||||
|
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[16.0, 17.0)" />
|
||||||
|
</Installation>
|
||||||
|
<Dependencies>
|
||||||
|
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.5,)" />
|
||||||
|
</Dependencies>
|
||||||
|
<Prerequisites>
|
||||||
|
<Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[16.0,17.0)" DisplayName="Visual Studio core editor" />
|
||||||
|
</Prerequisites>
|
||||||
|
<Assets>
|
||||||
|
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
|
||||||
|
</Assets>
|
||||||
|
</PackageManifest>
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("UIXBuildTask")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("UIXBuildTask")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2021")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("1ff973f0-c293-439c-83f8-d2c02b624c2d")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
using Microsoft.Build.Utilities;
|
||||||
|
using Microsoft.Build.Framework;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using System.IO;
|
||||||
|
using Microsoft.Iris.Markup;
|
||||||
|
using Microsoft.Iris;
|
||||||
|
using Microsoft.Iris.Session;
|
||||||
|
using System.Collections;
|
||||||
|
|
||||||
|
namespace UIXBuildTask
|
||||||
|
{
|
||||||
|
public class UIXBuild : Task
|
||||||
|
{
|
||||||
|
private readonly string[] RequiredDlls = new[]
|
||||||
|
{
|
||||||
|
"UIXrender.dll", "UIX.renderapi.dll", "UIXsup.dll"
|
||||||
|
};
|
||||||
|
|
||||||
|
private ITaskItem[] _sourcefiles;
|
||||||
|
private string[] _compiledFiles;
|
||||||
|
private string _compiledOutputDir;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A list of all UIX source files to compile.
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public ITaskItem[] SourceFiles
|
||||||
|
{
|
||||||
|
get => _sourcefiles;
|
||||||
|
set => _sourcefiles = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Directory to output compiled files to.
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public string CompiledOutputDir
|
||||||
|
{
|
||||||
|
get => _compiledOutputDir;
|
||||||
|
set => _compiledOutputDir = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A list of all UIB files generated.
|
||||||
|
/// </summary>
|
||||||
|
[Output]
|
||||||
|
public string[] CompiledFiles
|
||||||
|
{
|
||||||
|
get => _compiledFiles;
|
||||||
|
set => _compiledFiles = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Execute()
|
||||||
|
{
|
||||||
|
if (SourceFiles.Length == 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// The task is run from the project directory, not the output directory,
|
||||||
|
// so the Iris library will fail to find UIXrender.dll unless we move it.
|
||||||
|
foreach (string dll in RequiredDlls)
|
||||||
|
File.Copy(
|
||||||
|
Path.Combine(Directory.GetCurrentDirectory(), "lib", dll),
|
||||||
|
Path.Combine(Directory.GetCurrentDirectory(), dll),
|
||||||
|
true);
|
||||||
|
|
||||||
|
bool isSuccess = true;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Initialize UIX compiler
|
||||||
|
MarkupSystem.Startup(true);
|
||||||
|
ErrorManager.OnErrors += (IList errors) => {
|
||||||
|
foreach (object obj in errors)
|
||||||
|
{
|
||||||
|
if (obj is ErrorRecord err)
|
||||||
|
Log.LogError("", "", "", err.Context, err.Line, err.Column, err.Line, err.Column, err.Message);
|
||||||
|
else
|
||||||
|
Log.LogError(obj.ToString());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (ITaskItem item in SourceFiles)
|
||||||
|
{
|
||||||
|
string sourceFile = item.GetMetadata("FullPath");
|
||||||
|
string compiledFile = Path.Combine(CompiledOutputDir, Path.GetFileNameWithoutExtension(sourceFile) + ".uib");
|
||||||
|
Directory.CreateDirectory(CompiledOutputDir);
|
||||||
|
|
||||||
|
// Compile sourePath
|
||||||
|
isSuccess &= MarkupCompiler.Compile(
|
||||||
|
new[]
|
||||||
|
{
|
||||||
|
new CompilerInput()
|
||||||
|
{
|
||||||
|
SourceFileName = sourceFile,
|
||||||
|
OutputFileName = compiledFile
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new CompilerInput()
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!isSuccess)
|
||||||
|
Log.LogError($"Failed to compile {sourceFile}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
// TODO: Don't leave random DLLs in the project directory
|
||||||
|
//foreach (string dll in RequiredDlls)
|
||||||
|
// File.Delete(Path.Combine(Directory.GetCurrentDirectory(), dll));
|
||||||
|
}
|
||||||
|
|
||||||
|
return isSuccess;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{1FF973F0-C293-439C-83F8-D2C02B624C2D}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>UIXBuildTask</RootNamespace>
|
||||||
|
<AssemblyName>UIXBuildTask</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Microsoft.Build" />
|
||||||
|
<Reference Include="Microsoft.Build.Framework" />
|
||||||
|
<Reference Include="Microsoft.Build.Utilities.v4.0" />
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="UIXBuild.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\..\ZuneShell\UIX\UIX.csproj">
|
||||||
|
<Project>{5681a1bd-b3ec-450b-bf6e-38187204b6be}</Project>
|
||||||
|
<Name>UIX</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
</Project>
|
||||||
+48
-1
@@ -3,28 +3,75 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||||||
# Visual Studio Version 16
|
# Visual Studio Version 16
|
||||||
VisualStudioVersion = 16.0.30907.101
|
VisualStudioVersion = 16.0.30907.101
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZuneUIXTools", "ZuneUIXTools\ZuneUIXTools.csproj", "{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZuneUIXTools", "ZuneUIXTools\ZuneUIXTools.csproj", "{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UIX", "..\ZuneShell\UIX\UIX.csproj", "{5681A1BD-B3EC-450B-BF6E-38187204B6BE}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UIX", "..\ZuneShell\UIX\UIX.csproj", "{5681A1BD-B3EC-450B-BF6E-38187204B6BE}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VSIX", "VSIX", "{0CB0EB34-BA9C-4D36-AE45-380F3F0D12ED}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IrisVSIX", "VSIX\IrisVSIX\IrisVSIX.csproj", "{B4EEF46A-3235-42BD-9540-7AAA03BAC77D}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IrisProjTemplate", "VSIX\IrisProjTemplate\IrisProjTemplate.csproj", "{854495B4-B684-47AC-9771-A644BF47B2FF}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UIXBuildTask", "VSIX\UIXBuildTask\UIXBuildTask.csproj", "{1FF973F0-C293-439C-83F8-D2C02B624C2D}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
Release|Any CPU = Release|Any CPU
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|x64 = Release|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}.Release|Any CPU.Build.0 = Release|Any CPU
|
{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{3F8F7428-4FC3-41B8-BE59-E6F25C11019A}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{5681A1BD-B3EC-450B-BF6E-38187204B6BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{5681A1BD-B3EC-450B-BF6E-38187204B6BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{5681A1BD-B3EC-450B-BF6E-38187204B6BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{5681A1BD-B3EC-450B-BF6E-38187204B6BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{5681A1BD-B3EC-450B-BF6E-38187204B6BE}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{5681A1BD-B3EC-450B-BF6E-38187204B6BE}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{5681A1BD-B3EC-450B-BF6E-38187204B6BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{5681A1BD-B3EC-450B-BF6E-38187204B6BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{5681A1BD-B3EC-450B-BF6E-38187204B6BE}.Release|Any CPU.Build.0 = Release|Any CPU
|
{5681A1BD-B3EC-450B-BF6E-38187204B6BE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{5681A1BD-B3EC-450B-BF6E-38187204B6BE}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{5681A1BD-B3EC-450B-BF6E-38187204B6BE}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{B4EEF46A-3235-42BD-9540-7AAA03BAC77D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B4EEF46A-3235-42BD-9540-7AAA03BAC77D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B4EEF46A-3235-42BD-9540-7AAA03BAC77D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{B4EEF46A-3235-42BD-9540-7AAA03BAC77D}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{B4EEF46A-3235-42BD-9540-7AAA03BAC77D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B4EEF46A-3235-42BD-9540-7AAA03BAC77D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B4EEF46A-3235-42BD-9540-7AAA03BAC77D}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{B4EEF46A-3235-42BD-9540-7AAA03BAC77D}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{854495B4-B684-47AC-9771-A644BF47B2FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{854495B4-B684-47AC-9771-A644BF47B2FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{854495B4-B684-47AC-9771-A644BF47B2FF}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{854495B4-B684-47AC-9771-A644BF47B2FF}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{854495B4-B684-47AC-9771-A644BF47B2FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{854495B4-B684-47AC-9771-A644BF47B2FF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{854495B4-B684-47AC-9771-A644BF47B2FF}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{854495B4-B684-47AC-9771-A644BF47B2FF}.Release|x64.Build.0 = Release|x64
|
||||||
|
{1FF973F0-C293-439C-83F8-D2C02B624C2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{1FF973F0-C293-439C-83F8-D2C02B624C2D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{1FF973F0-C293-439C-83F8-D2C02B624C2D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{1FF973F0-C293-439C-83F8-D2C02B624C2D}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{1FF973F0-C293-439C-83F8-D2C02B624C2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{1FF973F0-C293-439C-83F8-D2C02B624C2D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{1FF973F0-C293-439C-83F8-D2C02B624C2D}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{1FF973F0-C293-439C-83F8-D2C02B624C2D}.Release|x64.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
GlobalSection(NestedProjects) = preSolution
|
||||||
|
{B4EEF46A-3235-42BD-9540-7AAA03BAC77D} = {0CB0EB34-BA9C-4D36-AE45-380F3F0D12ED}
|
||||||
|
{854495B4-B684-47AC-9771-A644BF47B2FF} = {0CB0EB34-BA9C-4D36-AE45-380F3F0D12ED}
|
||||||
|
{1FF973F0-C293-439C-83F8-D2C02B624C2D} = {0CB0EB34-BA9C-4D36-AE45-380F3F0D12ED}
|
||||||
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {4FFAF324-5FC4-4AAF-A0D7-BAA0D81C2B4C}
|
SolutionGuid = {4FFAF324-5FC4-4AAF-A0D7-BAA0D81C2B4C}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ using System.Windows.Media;
|
|||||||
using System.Windows.Media.Imaging;
|
using System.Windows.Media.Imaging;
|
||||||
using System.Windows.Navigation;
|
using System.Windows.Navigation;
|
||||||
using System.Windows.Shapes;
|
using System.Windows.Shapes;
|
||||||
|
using Application = Microsoft.Iris.Application;
|
||||||
using Window = System.Windows.Window;
|
using Window = System.Windows.Window;
|
||||||
|
|
||||||
namespace ZuneUIXTools
|
namespace ZuneUIXTools
|
||||||
@@ -130,20 +131,20 @@ namespace ZuneUIXTools
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Microsoft.Iris.Application.Initialize();
|
Application.Initialize();
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Microsoft.Iris.Application.Window.SetBackgroundColor(new WindowColor(0xE6, 0xE6, 0xE6));
|
Application.Window.SetBackgroundColor(new WindowColor(0xE6, 0xE6, 0xE6));
|
||||||
Microsoft.Iris.Application.Window.RequestLoad("file://" + compiledFile + (string.IsNullOrEmpty(UIRoot) ? string.Empty : "#" + UIRoot));
|
Application.Window.RequestLoad("file://" + compiledFile + (string.IsNullOrEmpty(UIRoot) ? string.Empty : "#" + UIRoot));
|
||||||
Microsoft.Iris.Application.Window.CloseRequested += (object sender, WindowCloseRequestedEventArgs args) =>
|
Application.Window.CloseRequested += (object sender, WindowCloseRequestedEventArgs args) =>
|
||||||
{
|
{
|
||||||
args.BlockCloseRequest();
|
args.BlockCloseRequest();
|
||||||
Microsoft.Iris.Application.Window.Visible = false;
|
Application.Window.Visible = false;
|
||||||
};
|
};
|
||||||
Microsoft.Iris.Application.Run();
|
Application.Run();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|||||||
+563
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user