This commit is contained in:
wieslawsoltes 2018-12-09 11:36:09 +00:00
Родитель 23f7cd16a2
Коммит 63ceb74eb9
16 изменённых файлов: 51 добавлений и 695 удалений

Просмотреть файл

@ -12,7 +12,9 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{A47CBA6E-2F46-4308-BA5B-DE4AE5253F32}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
build.cake = build.cake
.nuke = .nuke
build.ps1 = build.ps1
build.sh = build.sh
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReactiveHistory.UnitTests", "tests\ReactiveHistory.UnitTests\ReactiveHistory.UnitTests.csproj", "{71BA2D95-53E6-42D4-ADAA-CF34C77494F5}"
@ -27,18 +29,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveHistorySample.Wpf",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReactiveHistorySample.Avalonia", "samples\ReactiveHistorySample.Avalonia\ReactiveHistorySample.Avalonia.csproj", "{342F4B0A-2EEB-434D-B4FC-8E76DA474729}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "shared", "shared", "{E5AE18B0-5147-4FDD-B3A4-3EB695D7C444}"
ProjectSection(SolutionItems) = preProject
src\Shared\SharedAssemblyInfo.cs = src\Shared\SharedAssemblyInfo.cs
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ci", "ci", "{7B85A9D4-E7E7-4BDB-B9AD-E6FFA195E786}"
ProjectSection(SolutionItems) = preProject
_config.yml = _config.yml
appveyor.yml = appveyor.yml
azure-pipelines.yml = azure-pipelines.yml
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "nuget", "nuget", "{04528DEE-83A0-41B8-B35A-6026C20AC281}"
ProjectSection(SolutionItems) = preProject
NuGet.Config = NuGet.Config
@ -54,8 +44,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "props", "props", "{1C68A69B
ProjectSection(SolutionItems) = preProject
build\Avalonia.Desktop.props = build\Avalonia.Desktop.props
build\Avalonia.props = build\Avalonia.props
build\NETCore.props = build\NETCore.props
build\NetFX.props = build\NetFX.props
build\Base.props = build\Base.props
build\EmbedXaml.props = build\EmbedXaml.props
build\ReactiveProperty.props = build\ReactiveProperty.props
build\Rx.props = build\Rx.props
build\XUnit.props = build\XUnit.props
@ -132,7 +122,6 @@ Global
{A3C460F7-DF9E-4D6B-8CF3-A1E668C7F2F1} = {4A600469-8200-4BDD-AA90-6B34B2D1CD2A}
{3F0AC124-875C-4F92-8FAE-FF201C271CCF} = {4A600469-8200-4BDD-AA90-6B34B2D1CD2A}
{342F4B0A-2EEB-434D-B4FC-8E76DA474729} = {4A600469-8200-4BDD-AA90-6B34B2D1CD2A}
{7B85A9D4-E7E7-4BDB-B9AD-E6FFA195E786} = {A47CBA6E-2F46-4308-BA5B-DE4AE5253F32}
{04528DEE-83A0-41B8-B35A-6026C20AC281} = {A47CBA6E-2F46-4308-BA5B-DE4AE5253F32}
{24184708-8950-4B74-9CBB-BB68291FF9C6} = {A47CBA6E-2F46-4308-BA5B-DE4AE5253F32}
{1C68A69B-E16C-4603-9DD3-DDB4E4393EDF} = {A47CBA6E-2F46-4308-BA5B-DE4AE5253F32}

Просмотреть файл

@ -1,35 +0,0 @@
version: '{build}'
image: Visual Studio 2017
skip_branch_with_pr: true
configuration: Release
platform: Any CPU
environment:
APPVEYOR_BLOCK_DOTNETCORE_TESTS_AUTORUN: true
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_CLI_TELEMETRY_OPTOUT: 1
NUGET_API_KEY:
secure: iSkm19DNdKOLxxCvHiaKikWXy25ZMwGBKpv+EgEprliGl0qX5HtKohLmwJsLnx5O
NUGET_API_URL: https://www.nuget.org/api/v2/package
MYGET_API_KEY:
secure: xhYvrWYPHdNI+mQD+f4Zu3baL7fqW+nO/hYXJdN070Lej8wpa6gfrLi1NGtnQlAs
MYGET_API_URL: https://www.myget.org/F/reactivehistory-nightly/api/v2/package
install:
- if not exist dotnet-sdk-2.1.401-win-x64.exe appveyor DownloadFile https://download.microsoft.com/download/E/8/A/E8AF2EE0-5DDA-4420-A395-D1A50EEFD83E/dotnet-sdk-2.1.401-win-x64.exe -FileName "dotnet-sdk-2.1.401-win-x64.exe"
- ps: Start-Process -FilePath "dotnet-sdk-2.1.401-win-x64.exe" -ArgumentList "/quiet" -Wait
- cmd: dotnet --info
- cmd: dotnet tool install -g Cake.Tool --version 0.30.0
build_script:
- cmd: dotnet cake build.cake -Target="AppVeyor" -Platform="%PLATFORM%" -Configuration="%CONFIGURATION%"
test: off
notifications:
- provider: Webhook
url: https://webhooks.gitter.im/e/190345f2f4350d168c39
method: POST
on_build_success: true
on_build_failure: true
on_build_status_changed: true
artifacts:
- path: artifacts\test-results\*.xml
- path: artifacts\nuget\*.nupkg
cache:
- dotnet-sdk-2.1.401-win-x64.exe

Просмотреть файл

@ -1,49 +0,0 @@
jobs:
- job: Linux
pool:
vmImage: 'ubuntu-16.04'
steps:
- task: DotNetCoreInstaller@0
inputs:
version: '2.1.401'
- script: |
export COREHOST_TRACE=0
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
export DOTNET_CLI_TELEMETRY_OPTOUT=1
which dotnet
dotnet --info
dotnet tool install -g Cake.Tool --version 0.30.0
export PATH="$PATH:$HOME/.dotnet/tools"
dotnet cake build.cake -Target="Azure-Linux" -Platform="Any CPU" -Configuration="Release"
- job: macOS
pool:
vmImage: 'xcode9-macos10.13'
steps:
- task: DotNetCoreInstaller@0
inputs:
version: '2.1.401'
- script: |
export COREHOST_TRACE=0
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
export DOTNET_CLI_TELEMETRY_OPTOUT=1
which dotnet
dotnet --info
dotnet tool install -g Cake.Tool --version 0.30.0
export PATH="$PATH:$HOME/.dotnet/tools"
dotnet cake build.cake -Target="Azure-macOS" -Platform="Any CPU" -Configuration="Release"
- job: Windows
pool:
vmImage: 'vs2017-win2016'
steps:
- task: DotNetCoreInstaller@0
inputs:
version: '2.1.401'
- script: |
set COREHOST_TRACE=0
set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
set DOTNET_CLI_TELEMETRY_OPTOUT=1
where dotnet
dotnet --info
dotnet tool install -g Cake.Tool --version 0.30.0
set PATH=%PATH%;%USERPROFILE%\.dotnet\tools
dotnet cake build.cake -Target="Azure-Windows" -Platform="Any CPU" -Configuration="Release"

Просмотреть файл

@ -1,459 +0,0 @@
///////////////////////////////////////////////////////////////////////////////
// ADDINS
///////////////////////////////////////////////////////////////////////////////
#addin "nuget:?package=Polly&version=5.3.1"
#addin "nuget:?package=PackageReferenceEditor&version=0.0.3"
///////////////////////////////////////////////////////////////////////////////
// TOOLS
///////////////////////////////////////////////////////////////////////////////
#tool "nuget:?package=NuGet.CommandLine&version=4.3.0"
#tool "nuget:?package=xunit.runner.console&version=2.3.1"
///////////////////////////////////////////////////////////////////////////////
// USINGS
///////////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using PackageReferenceEditor;
using Polly;
///////////////////////////////////////////////////////////////////////////////
// ARGUMENTS
///////////////////////////////////////////////////////////////////////////////
var target = Argument("target", "Default");
var platform = Argument("platform", "Any CPU");
var configuration = Argument("configuration", "Release");
///////////////////////////////////////////////////////////////////////////////
// CONFIGURATION
///////////////////////////////////////////////////////////////////////////////
var MainRepo = "wieslawsoltes/ReactiveHistory";
var MasterBranch = "master";
var AssemblyInfoPath = File("./src/Shared/SharedAssemblyInfo.cs");
var ReleasePlatform = "Any CPU";
var ReleaseConfiguration = "Release";
var MSBuildSolution = "./ReactiveHistory.sln";
var UnitTestsFramework = "net461";
///////////////////////////////////////////////////////////////////////////////
// .NET Core Projects
///////////////////////////////////////////////////////////////////////////////
var netCoreAppsRoot= "./samples";
var netCoreApps = new string[] { "ReactiveHistorySample.Avalonia" };
var netCoreProjects = netCoreApps.Select(name =>
new {
Path = string.Format("{0}/{1}", netCoreAppsRoot, name),
Name = name,
Framework = XmlPeek(string.Format("{0}/{1}/{1}.csproj", netCoreAppsRoot, name), "//*[local-name()='TargetFramework']/text()"),
Runtimes = XmlPeek(string.Format("{0}/{1}/{1}.csproj", netCoreAppsRoot, name), "//*[local-name()='RuntimeIdentifiers']/text()").Split(';')
}).ToList();
///////////////////////////////////////////////////////////////////////////////
// .NET Core UnitTests
///////////////////////////////////////////////////////////////////////////////
var netCoreUnitTestsRoot= "./tests";
var netCoreUnitTests = new string[] {
"ReactiveHistory.UnitTests"
};
var netCoreUnitTestsProjects = netCoreUnitTests.Select(name =>
new {
Name = name,
Path = string.Format("{0}/{1}", netCoreUnitTestsRoot, name),
File = string.Format("{0}/{1}/{1}.csproj", netCoreUnitTestsRoot, name)
}).ToList();
var netCoreUnitTestsFrameworks = new List<string>() { "netcoreapp2.1" };
if (IsRunningOnWindows())
{
netCoreUnitTestsFrameworks.Add("net461");
}
///////////////////////////////////////////////////////////////////////////////
// PARAMETERS
///////////////////////////////////////////////////////////////////////////////
var isPlatformAnyCPU = StringComparer.OrdinalIgnoreCase.Equals(platform, "Any CPU");
var isPlatformX86 = StringComparer.OrdinalIgnoreCase.Equals(platform, "x86");
var isPlatformX64 = StringComparer.OrdinalIgnoreCase.Equals(platform, "x64");
var isLocalBuild = BuildSystem.IsLocalBuild;
var isRunningOnUnix = IsRunningOnUnix();
var isRunningOnWindows = IsRunningOnWindows();
var isRunningOnAppVeyor = BuildSystem.AppVeyor.IsRunningOnAppVeyor;
var isPullRequest = BuildSystem.AppVeyor.Environment.PullRequest.IsPullRequest;
var isMainRepo = StringComparer.OrdinalIgnoreCase.Equals(MainRepo, BuildSystem.AppVeyor.Environment.Repository.Name);
var isMasterBranch = StringComparer.OrdinalIgnoreCase.Equals(MasterBranch, BuildSystem.AppVeyor.Environment.Repository.Branch);
var isTagged = BuildSystem.AppVeyor.Environment.Repository.Tag.IsTag
&& !string.IsNullOrWhiteSpace(BuildSystem.AppVeyor.Environment.Repository.Tag.Name);
var isReleasable = StringComparer.OrdinalIgnoreCase.Equals(ReleasePlatform, platform)
&& StringComparer.OrdinalIgnoreCase.Equals(ReleaseConfiguration, configuration);
var isMyGetRelease = !isTagged && isReleasable;
var isNuGetRelease = isTagged && isReleasable;
///////////////////////////////////////////////////////////////////////////////
// VERSION
///////////////////////////////////////////////////////////////////////////////
var version = ParseAssemblyInfo(AssemblyInfoPath).AssemblyVersion;
if (isRunningOnAppVeyor)
{
if (isTagged)
{
// Use Tag Name as version
version = BuildSystem.AppVeyor.Environment.Repository.Tag.Name;
}
else
{
// Use AssemblyVersion with Build as version
version += "-build" + EnvironmentVariable("APPVEYOR_BUILD_NUMBER") + "-alpha";
}
}
///////////////////////////////////////////////////////////////////////////////
// DIRECTORIES
///////////////////////////////////////////////////////////////////////////////
var artifactsDir = (DirectoryPath)Directory("./artifacts");
var testResultsDir = artifactsDir.Combine("test-results");
var nugetRoot = artifactsDir.Combine("nuget");
var dirSuffix = isPlatformAnyCPU ? configuration : platform + "/" + configuration;
var buildDirs =
GetDirectories("./src/**/bin/**") +
GetDirectories("./src/**/obj/**") +
GetDirectories("./samples/**/bin/**") +
GetDirectories("./samples/**/obj/**") +
GetDirectories("./tests/**/bin/**") +
GetDirectories("./tests/**/obj/**");
///////////////////////////////////////////////////////////////////////////////
// NUGET NUSPECS
///////////////////////////////////////////////////////////////////////////////
var result = Updater.FindReferences("./build", "*.props", new string[] { });
result.ValidateVersions();
Information("Setting NuGet package dependencies versions:");
var SystemReactiveVersion = result.GroupedReferences["System.Reactive"].FirstOrDefault().Version;
Information("Package: System.Reactive, version: {0}", SystemReactiveVersion);
var nuspecNuGetHistory = new NuGetPackSettings()
{
Id = "ReactiveHistory",
Version = version,
Authors = new [] { "wieslawsoltes" },
Owners = new [] { "wieslawsoltes" },
LicenseUrl = new Uri("http://opensource.org/licenses/MIT"),
ProjectUrl = new Uri("https://github.com/wieslawsoltes/ReactiveHistory/"),
RequireLicenseAcceptance = false,
Symbols = false,
NoPackageAnalysis = true,
Description = "Reactive undo/redo framework for .NET.",
Copyright = "Copyright 2018",
Tags = new [] { "Undo", "Redo", "History", "Reactive", "Managed", "C#" },
Dependencies = new []
{
new NuSpecDependency { Id = "System.Reactive", Version = SystemReactiveVersion }
},
Files = new []
{
// netstandard2.0
new NuSpecContent { Source = "src/ReactiveHistory/bin/" + dirSuffix + "/netstandard2.0/" + "ReactiveHistory.dll", Target = "lib/netstandard2.0" },
new NuSpecContent { Source = "src/ReactiveHistory/bin/" + dirSuffix + "/netstandard2.0/" + "ReactiveHistory.xml", Target = "lib/netstandard2.0" },
// net461
new NuSpecContent { Source = "src/ReactiveHistory/bin/" + dirSuffix + "/net461/" + "ReactiveHistory.dll", Target = "lib/net461" },
new NuSpecContent { Source = "src/ReactiveHistory/bin/" + dirSuffix + "/net461/" + "ReactiveHistory.xml", Target = "lib/net461" }
},
BasePath = Directory("./"),
OutputDirectory = nugetRoot
};
var nuspecNuGetSettings = new List<NuGetPackSettings>();
nuspecNuGetSettings.Add(nuspecNuGetHistory);
var nugetPackages = nuspecNuGetSettings.Select(nuspec => {
return nuspec.OutputDirectory.CombineWithFilePath(string.Concat(nuspec.Id, ".", nuspec.Version, ".nupkg"));
}).ToArray();
///////////////////////////////////////////////////////////////////////////////
// INFORMATION
///////////////////////////////////////////////////////////////////////////////
Information("Building version {0} of ReactiveHistory ({1}, {2}, {3}) using version {4} of Cake.",
version,
platform,
configuration,
target,
typeof(ICakeContext).Assembly.GetName().Version.ToString());
if (isRunningOnAppVeyor)
{
Information("Repository Name: " + BuildSystem.AppVeyor.Environment.Repository.Name);
Information("Repository Branch: " + BuildSystem.AppVeyor.Environment.Repository.Branch);
}
Information("Target: " + target);
Information("Platform: " + platform);
Information("Configuration: " + configuration);
Information("IsLocalBuild: " + isLocalBuild);
Information("IsRunningOnUnix: " + isRunningOnUnix);
Information("IsRunningOnWindows: " + isRunningOnWindows);
Information("IsRunningOnAppVeyor: " + isRunningOnAppVeyor);
Information("IsPullRequest: " + isPullRequest);
Information("IsMainRepo: " + isMainRepo);
Information("IsMasterBranch: " + isMasterBranch);
Information("IsTagged: " + isTagged);
Information("IsReleasable: " + isReleasable);
Information("IsMyGetRelease: " + isMyGetRelease);
Information("IsNuGetRelease: " + isNuGetRelease);
///////////////////////////////////////////////////////////////////////////////
// TASKS: VISUAL STUDIO
///////////////////////////////////////////////////////////////////////////////
Task("Clean")
.Does(() =>
{
CleanDirectories(buildDirs);
CleanDirectory(artifactsDir);
CleanDirectory(testResultsDir);
CleanDirectory(nugetRoot);
});
Task("Restore-NuGet-Packages")
.IsDependentOn("Clean")
.Does(() =>
{
var maxRetryCount = 5;
var toolTimeout = 1d;
Policy
.Handle<Exception>()
.Retry(maxRetryCount, (exception, retryCount, context) => {
if (retryCount == maxRetryCount)
{
throw exception;
}
else
{
Verbose("{0}", exception);
toolTimeout+=0.5;
}})
.Execute(()=> {
if(isRunningOnWindows)
{
NuGetRestore(MSBuildSolution, new NuGetRestoreSettings {
ToolTimeout = TimeSpan.FromMinutes(toolTimeout)
});
}
});
});
Task("Build")
.IsDependentOn("Restore-NuGet-Packages")
.Does(() =>
{
if(isRunningOnWindows)
{
MSBuild(MSBuildSolution, settings => {
settings.UseToolVersion(MSBuildToolVersion.VS2017);
settings.SetConfiguration(configuration);
settings.WithProperty("Platform", "\"" + platform + "\"");
settings.SetVerbosity(Verbosity.Minimal);
});
}
});
Task("Run-Unit-Tests")
.IsDependentOn("Build")
.Does(() =>
{
if(!isRunningOnWindows)
return;
var assemblies = GetFiles("./tests/**/bin/" + dirSuffix + "/" + UnitTestsFramework + "/*.UnitTests.dll");
var settings = new XUnit2Settings {
ToolPath = (isPlatformAnyCPU || isPlatformX86) ?
Context.Tools.Resolve("xunit.console.x86.exe") :
Context.Tools.Resolve("xunit.console.exe"),
OutputDirectory = testResultsDir,
XmlReportV1 = true,
NoAppDomain = true,
Parallelism = ParallelismOption.None,
ShadowCopy = false
};
foreach (var assembly in assemblies)
{
XUnit2(assembly.FullPath, settings);
}
});
Task("Create-NuGet-Packages")
.IsDependentOn("Run-Unit-Tests")
.Does(() =>
{
foreach(var nuspec in nuspecNuGetSettings)
{
NuGetPack(nuspec);
}
});
Task("Publish-MyGet")
.IsDependentOn("Create-NuGet-Packages")
.WithCriteria(() => !isLocalBuild)
.WithCriteria(() => !isPullRequest)
.WithCriteria(() => isMainRepo)
.WithCriteria(() => isMasterBranch)
.WithCriteria(() => isMyGetRelease)
.Does(() =>
{
var apiKey = EnvironmentVariable("MYGET_API_KEY");
if(string.IsNullOrEmpty(apiKey))
{
throw new InvalidOperationException("Could not resolve MyGet API key.");
}
var apiUrl = EnvironmentVariable("MYGET_API_URL");
if(string.IsNullOrEmpty(apiUrl))
{
throw new InvalidOperationException("Could not resolve MyGet API url.");
}
foreach(var nupkg in nugetPackages)
{
NuGetPush(nupkg, new NuGetPushSettings {
Source = apiUrl,
ApiKey = apiKey
});
}
})
.OnError(exception =>
{
Information("Publish-MyGet Task failed, but continuing with next Task...");
});
Task("Publish-NuGet")
.IsDependentOn("Create-NuGet-Packages")
.WithCriteria(() => !isLocalBuild)
.WithCriteria(() => !isPullRequest)
.WithCriteria(() => isMainRepo)
.WithCriteria(() => isMasterBranch)
.WithCriteria(() => isNuGetRelease)
.Does(() =>
{
var apiKey = EnvironmentVariable("NUGET_API_KEY");
if(string.IsNullOrEmpty(apiKey))
{
throw new InvalidOperationException("Could not resolve NuGet API key.");
}
var apiUrl = EnvironmentVariable("NUGET_API_URL");
if(string.IsNullOrEmpty(apiUrl))
{
throw new InvalidOperationException("Could not resolve NuGet API url.");
}
foreach(var nupkg in nugetPackages)
{
NuGetPush(nupkg, new NuGetPushSettings {
ApiKey = apiKey,
Source = apiUrl
});
}
})
.OnError(exception =>
{
Information("Publish-NuGet Task failed, but continuing with next Task...");
});
///////////////////////////////////////////////////////////////////////////////
// TASKS: .NET Core
///////////////////////////////////////////////////////////////////////////////
Task("Restore-NetCore")
.IsDependentOn("Clean")
.Does(() =>
{
foreach (var project in netCoreProjects)
{
DotNetCoreRestore(project.Path);
}
});
Task("Run-Unit-Tests-NetCore")
.IsDependentOn("Clean")
.Does(() =>
{
foreach (var project in netCoreUnitTestsProjects)
{
DotNetCoreRestore(project.Path);
foreach(var framework in netCoreUnitTestsFrameworks)
{
Information("Running tests for: {0}, framework: {1}", project.Name, framework);
DotNetCoreTest(project.File, new DotNetCoreTestSettings {
Configuration = configuration,
Framework = framework
});
}
}
});
Task("Build-NetCore")
.IsDependentOn("Restore-NetCore")
.Does(() =>
{
foreach (var project in netCoreProjects)
{
Information("Building: {0}", project.Name);
DotNetCoreBuild(project.Path, new DotNetCoreBuildSettings {
Configuration = configuration,
MSBuildSettings = new DotNetCoreMSBuildSettings() {
MaxCpuCount = 0
}
});
}
});
///////////////////////////////////////////////////////////////////////////////
// TARGETS
///////////////////////////////////////////////////////////////////////////////
Task("Package")
.IsDependentOn("Create-NuGet-Packages");
Task("Default")
.IsDependentOn("Run-Unit-Tests");
Task("AppVeyor")
.IsDependentOn("Run-Unit-Tests-NetCore")
.IsDependentOn("Build-NetCore")
.IsDependentOn("Publish-MyGet")
.IsDependentOn("Publish-NuGet");
Task("Azure-Windows")
.IsDependentOn("Run-Unit-Tests-NetCore")
.IsDependentOn("Build-NetCore");
Task("Azure-macOS")
.IsDependentOn("Run-Unit-Tests-NetCore")
.IsDependentOn("Build-NetCore");
Task("Azure-Linux")
.IsDependentOn("Run-Unit-Tests-NetCore")
.IsDependentOn("Build-NetCore");
///////////////////////////////////////////////////////////////////////////////
// EXECUTE
///////////////////////////////////////////////////////////////////////////////
RunTarget(target);

Просмотреть файл

@ -1,11 +1,11 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VersionPrefix>0.0.2</VersionPrefix>
<VersionPrefix>0.2.5</VersionPrefix>
<VersionSuffix></VersionSuffix>
<Authors>Wiesław Šoltés</Authors>
<Company>Wiesław Šoltés</Company>
<Copyright>Copyright © Wiesław Šoltés 2018</Copyright>
<PackageLicenseUrl>https://github.com/wieslawsoltes/ThemeEditor/blob/master/LICENSE.TXT</PackageLicenseUrl>
<PackageProjectUrl>https://github.com/wieslawsoltes/ThemeEditor</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/wieslawsoltes/ReactiveHistory/blob/master/LICENSE.TXT</PackageLicenseUrl>
<PackageProjectUrl>https://github.com/wieslawsoltes/ReactiveHistory</PackageProjectUrl>
</PropertyGroup>
</Project>

Просмотреть файл

@ -1,17 +0,0 @@
// Copyright (c) Wiesław Šoltés. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("ReactiveHistorySample.Avalonia")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ReactiveHistorySample.Avalonia")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("342f4b0a-2eeb-434d-b4fc-8e76da474729")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Просмотреть файл

@ -3,29 +3,23 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeIdentifiers>win7-x64;ubuntu.14.04-x64;osx.10.12-x64</RuntimeIdentifiers>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<EnableDefaultCompileItems>False</EnableDefaultCompileItems>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<LangVersion>latest</LangVersion>
<IsPackable>False</IsPackable>
</PropertyGroup>
<Import Project="..\..\build\Base.props" />
<Import Project="..\..\build\Rx.props" />
<Import Project="..\..\build\Avalonia.props" />
<Import Project="..\..\build\Avalonia.Desktop.props" />
<Import Project="..\..\build\ReactiveProperty.props" />
<ItemGroup>
<Compile Include="**\*.cs" Exclude="obj\**" />
</ItemGroup>
<ItemGroup>
<Compile Update="**\*.xaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
<SubType>Code</SubType>
</Compile>
<EmbeddedResource Include="**\*.xaml" />
</ItemGroup>
<Import Project="$(MSBuildThisFileDirectory)..\..\build\NETCore.props" />
<Import Project="$(MSBuildThisFileDirectory)..\..\build\Rx.props" />
<Import Project="$(MSBuildThisFileDirectory)..\..\build\Avalonia.props" />
<Import Project="$(MSBuildThisFileDirectory)..\..\build\Avalonia.Desktop.props" />
<Import Project="$(MSBuildThisFileDirectory)..\..\build\ReactiveProperty.props" />
<Import Project="..\..\build\EmbedXaml.props" />
<ItemGroup>
<ProjectReference Include="..\..\src\ReactiveHistory\ReactiveHistory.csproj" />

Просмотреть файл

@ -1,16 +0,0 @@
// Copyright (c) Wiesław Šoltés. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System.Resources;
using System.Reflection;
[assembly: AssemblyTitle("ReactiveHistorySample.Models")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ReactiveHistorySample.Models")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: NeutralResourcesLanguage("en")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Просмотреть файл

@ -4,10 +4,13 @@
<TargetFrameworks>netstandard2.0;net461</TargetFrameworks>
<OutputType>Library</OutputType>
<EnableDefaultCompileItems>False</EnableDefaultCompileItems>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<LangVersion>latest</LangVersion>
<IsPackable>False</IsPackable>
</PropertyGroup>
<Import Project="..\..\build\Base.props" />
<ItemGroup>
<Compile Include="**\*.cs" Exclude="obj\**" />
</ItemGroup>

Просмотреть файл

@ -1,17 +0,0 @@
// Copyright (c) Wiesław Šoltés. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("ReactiveHistorySample.ViewModels")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ReactiveHistorySample.ViewModels")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("a3c460f7-df9e-4d6b-8cf3-a1e668c7f2f1")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Просмотреть файл

@ -4,10 +4,15 @@
<TargetFrameworks>netstandard2.0;net461</TargetFrameworks>
<OutputType>Library</OutputType>
<EnableDefaultCompileItems>False</EnableDefaultCompileItems>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<LangVersion>latest</LangVersion>
<IsPackable>False</IsPackable>
</PropertyGroup>
<Import Project="..\..\build\Base.props" />
<Import Project="..\..\build\ReactiveProperty.props" />
<Import Project="..\..\build\Rx.props" />
<ItemGroup>
<Compile Include="**\*.cs" Exclude="obj\**" />
</ItemGroup>
@ -17,7 +22,4 @@
<ProjectReference Include="..\ReactiveHistorySample.Models\ReactiveHistorySample.Models.csproj" />
</ItemGroup>
<Import Project="$(MSBuildThisFileDirectory)..\..\build\ReactiveProperty.props" />
<Import Project="$(MSBuildThisFileDirectory)..\..\build\Rx.props" />
</Project>

Просмотреть файл

@ -9,7 +9,7 @@ using System.Windows;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ReactiveHistorySample.Wpf")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyCopyright("Copyright © 2018 Wiesław Šoltés")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]

Просмотреть файл

@ -1,17 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net461</TargetFrameworks>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<OutputType>Library</OutputType>
<EnableDefaultCompileItems>False</EnableDefaultCompileItems>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup>
<Description>Reactive undo/redo framework for .NET.</Description>
<PackageTags>Undo;Redo;History;Reactive;Managed;C#</PackageTags>
</PropertyGroup>
<Import Project="..\..\build\Base.props" />
<Import Project="..\..\build\Rx.props" />
<ItemGroup>
<Compile Include="..\Shared\SharedAssemblyInfo.cs">
<Link>Properties\SharedAssemblyInfo.cs</Link>
</Compile>
<Compile Include="**\*.cs" Exclude="obj\**" />
</ItemGroup>
<Import Project="$(MSBuildThisFileDirectory)..\..\build\Rx.props" />
</Project>

Просмотреть файл

@ -1,10 +0,0 @@
// Copyright (c) Wiesław Šoltés. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System.Reflection;
[assembly: AssemblyCompany("Wiesław Šoltés")]
[assembly: AssemblyCopyright("Copyright © Wiesław Šoltés 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyVersion("0.2.4")]
[assembly: AssemblyFileVersion("0.2.4")]
[assembly: AssemblyInformationalVersion("0.2.4")]

Просмотреть файл

@ -1,17 +0,0 @@
// Copyright (c) Wiesław Šoltés. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("ReactiveHistory.UnitTests")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Wiesław Šoltés")]
[assembly: AssemblyProduct("ReactiveHistory.UnitTests")]
[assembly: AssemblyCopyright("Copyright © Wiesław Šoltés 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("71ba2d95-53e6-42d4-adaa-cf34c77494f5")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Просмотреть файл

@ -1,35 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1</TargetFrameworks>
<OutputType>Library</OutputType>
<EnableDefaultCompileItems>False</EnableDefaultCompileItems>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<GenerateRuntimeConfigurationFiles>True</GenerateRuntimeConfigurationFiles>
<TargetFramework>netcoreapp2.1</TargetFramework>
<LangVersion>latest</LangVersion>
<IsPackable>False</IsPackable>
</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="**\*.cs" Exclude="obj\**" />
</ItemGroup>
<Import Project="$(MSBuildThisFileDirectory)..\..\build\Rx.props" />
<Import Project="$(MSBuildThisFileDirectory)..\..\build\XUnit.props" />
<Import Project="..\..\build\Rx.props" />
<Import Project="..\..\build\XUnit.props" />
<ItemGroup>
<ProjectReference Include="..\..\src\ReactiveHistory\ReactiveHistory.csproj" />
</ItemGroup>
</Project>