Skip to content

Commit

Permalink
Merge pull request #21 from camalot/develop
Browse files Browse the repository at this point in the history
merge develop -> master
  • Loading branch information
camalot committed May 18, 2016
2 parents ef91cdf + a8b49d9 commit acc9645
Show file tree
Hide file tree
Showing 124 changed files with 3,149 additions and 3,219 deletions.
4 changes: 2 additions & 2 deletions .appveyor/AppVeyorProperties.msbuild
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

<APPVEYOR Condition=" '$(APPVEYOR)' == '' ">False</APPVEYOR>
<CI Condition=" '$(CI)' == '' ">False</CI>
<APPVEYOR_PROJECT_NAME Condition=" '$(APPVEYOR_PROJECT_NAME)' == '' ">MadBee</APPVEYOR_PROJECT_NAME>
<APPVEYOR_PROJECT_NAME Condition=" '$(APPVEYOR_PROJECT_NAME)' == '' ">Managed.Adb</APPVEYOR_PROJECT_NAME>
<APPVEYOR_PROJECT_SLUG Condition=" '$(APPVEYOR_PROJECT_SLUG)' == '' ">madb</APPVEYOR_PROJECT_SLUG>
<APPVEYOR_ACCOUNT_NAME Condition=" '$(APPVEYOR_ACCOUNT_NAME)' == '' ">camalot</APPVEYOR_ACCOUNT_NAME>
<APPVEYOR_BUILD_FOLDER Condition=" '$(APPVEYOR_BUILD_FOLDER)' == ''"></APPVEYOR_BUILD_FOLDER>
Expand All @@ -16,7 +16,7 @@
<APPVEYOR_REPO_PROVIDER Condition=" '$(APPVEYOR_REPO_PROVIDER)' == ''">UNKNOWN</APPVEYOR_REPO_PROVIDER>
<APPVEYOR_REPO_SCM Condition=" '$(APPVEYOR_REPO_SCM)' == '' ">UNKNOWN</APPVEYOR_REPO_SCM>
<APPVEYOR_REPO_NAME Condition=" '$(APPVEYOR_REPO_NAME)' == ''">$(APPVEYOR_ACCOUNT_NAME)/$(APPVEYOR_PROJECT_SLUG)</APPVEYOR_REPO_NAME>
<APPVEYOR_REPO_BRANCH Condition=" '$(APPVEYOR_REPO_BRANCH)' == '' ">UNKNOWN</APPVEYOR_REPO_BRANCH>
<APPVEYOR_REPO_BRANCH Condition=" '$(APPVEYOR_REPO_BRANCH)' == '' "></APPVEYOR_REPO_BRANCH>
<APPVEYOR_REPO_TAG Condition=" '$(APPVEYOR_REPO_TAG)' == '' ">False</APPVEYOR_REPO_TAG>
<APPVEYOR_SCHEDULED_BUILD Condition=" '$(APPVEYOR_SCHEDULED_BUILD)' == '' ">False</APPVEYOR_SCHEDULED_BUILD>
<APPVEYOR_FORCED_BUILD Condition=" '$(APPVEYOR_FORCED_BUILD)' == ''" >False</APPVEYOR_FORCED_BUILD>
Expand Down
3 changes: 2 additions & 1 deletion .appveyor/DeployCodePlex.msbuild
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<ReleaseTimeout>120</ReleaseTimeout>
<UploadTimeout>1200</UploadTimeout>

<ChangeLogFile>$(MSBuildProjectDirectory)\..\.build\publish-changelog.txt</ChangeLogFile>
<ChangeLogFile>$(MSBuildProjectDirectory)\..\.build\publishChangelog.txt</ChangeLogFile>
<ReleaseInfoFile>$(MSBuildProjectDirectory)\codeplex-release.txt</ReleaseInfoFile>
</PropertyGroup>

Expand Down Expand Up @@ -105,6 +105,7 @@
<Exec Command="appveyor SetVariable -Name CP_RELEASE_ID -Value &quot;$(ReleaseId)&quot;" Condition=" '$(APPVEYOR)' == 'True' AND '$(Platform)' == 'x86' AND '$(ReleaseId)' != '' " />
<Exec Command="appveyor SetVariable -Name CP_RELEASE_URL -Value &quot;$(ReleaseUrl)&quot;" Condition=" '$(APPVEYOR)' == 'True' AND '$(Platform)' == 'x86' AND '$(ReleaseUrl)' != '' " />
<Exec Command="appveyor SetVariable -Name CP_RELEASE_PROJECT -Value &quot;$(CodePlexProject)&quot;" Condition=" '$(APPVEYOR)' == 'True' AND '$(Platform)' == 'x86' AND '$(CodePlexProject)' != '' " />
<Exec Command="appveyor SetVariable -Name CI_RELEASE_DESCRIPTION -Value &quot;$(CI_RELEASE_DESCRIPTION)&quot;" Condition=" '$(APPVEYOR)' == 'True' AND '$(Platform)' == 'x86' AND '$(CI_RELEASE_DESCRIPTION)' != '' " />
</Target>

<Target Name="Upload" DependsOnTargets="CreateRelease">
Expand Down
49 changes: 49 additions & 0 deletions .appveyor/appveyor.after-build.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@

## THIS IS HERE BECAUSE THE 'BEFORE-DEPLOYMENT' DOESNT WANT TO RUN UNLESS ONE OF THE DEPLOYMENTS EVALUATES TO TRUE
## AND IT IS PISSING ME OFF

$commitMessageRegex = "^\[deploy\:(pre-release|draft|release)\]$";


# read the publishChangelog file
if(-not $env:CI_RELEASE_DESCRIPTION) {
$env:CI_RELEASE_DESCRIPTION = (Get-Content -Path ".\.build\publishChangelog.txt" -Raw);
}

# Must come from master branch.
# Must not have a PULL Request Number
# Must match regex
if ( $env:APPVEYOR_REPO_BRANCH -eq "master" ) {
# Any commit to master will be deployed!!!!
$env:CI_DEPLOY_NUGET = $true;
$env:CI_DEPLOY_GITHUB = $true;
$env:CI_DEPLOY_FTP = $false;
$env:CI_DEPLOY_WebHook = $true;
$env:CI_DEPLOY_WebDeploy = $true;
$env:CI_DEPLOY_CodePlex = $false;
$env:CI_DEPLOY_WEBAPI_RELEASE = $false;
$env:CI_DEPLOY_PUSHBULLET = $false;
$env:CI_DEPLOY = $true;
} elseif ( $env:APPVEYOR_REPO_BRANCH -eq "develop" ) {
$env:CI_DEPLOY_NUGET = $true;
$env:CI_DEPLOY_GITHUB_PRE = $true;
$env:CI_DEPLOY_GITHUB = $false;
$env:CI_DEPLOY_FTP = $false;
$env:CI_DEPLOY_WebHook = $false;
$env:CI_DEPLOY_WebDeploy = $false;
$env:CI_DEPLOY_CodePlex = $false;
$env:CI_DEPLOY_WEBAPI_RELEASE = $false;
$env:CI_DEPLOY_PUSHBULLET = $false;
$env:CI_DEPLOY = $false;
} else {
$env:CI_DEPLOY_NUGET = $false;
$env:CI_DEPLOY_GITHUB_PRE = $false;
$env:CI_DEPLOY_GITHUB = $false;
$env:CI_DEPLOY_FTP = $false;
$env:CI_DEPLOY_WebHook = $false;
$env:CI_DEPLOY_WebDeploy = $false;
$env:CI_DEPLOY_CodePlex = $false;
$env:CI_DEPLOY_WEBAPI_RELEASE = $false;
$env:CI_DEPLOY_PUSHBULLET = $false;
$env:CI_DEPLOY = $false;
}
144 changes: 72 additions & 72 deletions .appveyor/appveyor.after-deployment.ps1
Original file line number Diff line number Diff line change
@@ -1,87 +1,87 @@
Import-Module "$env:APPVEYOR_BUILD_FOLDER\.appveyor\modules\Invoke-MsBuild.psm1";
Import-Module "$env:APPVEYOR_BUILD_FOLDER\.appveyor\modules\Send-PushbulletMessage.psm1";
#Import-Module "$env:APPVEYOR_BUILD_FOLDER\.appveyor\modules\Invoke-MsBuild.psm1";
#Import-Module "$env:APPVEYOR_BUILD_FOLDER\.appveyor\modules\Send-PushbulletMessage.psm1";

function Publish-Release {
Param (
[Parameter(Mandatory=$true)]
[string] $HostName
)
$appId = $env:CI_PUBLISHAPPID;
$appKey = $env:CI_PUBLISHKEY;
#function Publish-Release {
# Param (
# [Parameter(Mandatory=$true)]
# [string] $HostName
# )
# $appId = $env:CI_PUBLISHAPPID;
# $appKey = $env:CI_PUBLISHKEY;


$url = "http://$HostName/api/update/create/";
$headers = @{};
$headers["Authentication-Token"] = $appKey;
$headers["Application-Identifier"] = $appId;
# $url = "http://$HostName/api/update/create/";
# $headers = @{};
# $headers["Authentication-Token"] = $appKey;
# $headers["Application-Identifier"] = $appId;

if(Test-Path -Path "$env:APPVEYOR_BUILD_FOLDER\.build\publishchangelog.txt") {
# read the publish text file
$publishNotes = (Get-Content -Path "$env:APPVEYOR_BUILD_FOLDER\.build\publishchangelog.txt") | Out-String;
}
# if(Test-Path -Path "$env:APPVEYOR_BUILD_FOLDER\.build\publishchangelog.txt") {
# # read the publish text file
# $publishNotes = (Get-Content -Path "$env:APPVEYOR_BUILD_FOLDER\.build\publishchangelog.txt") | Out-String;
# }


$post = @{
Id = $env:CP_RELEASE_ID;
Version = $env:CI_BUILD_VERSION;
Description = $publishNotes;
Name = $env:CP_RELEASE_NAME;
Url = "http://$env:CP_RELEASE_PROJECT.codeplex.com/releases/view/$env:CP_RELEASE_ID";
};
$contentType = "application/x-www-form-urlencoded";
$method = "POST";
# $post = @{
# Id = $env:CP_RELEASE_ID;
# Version = $env:CI_BUILD_VERSION;
# Description = $publishNotes;
# Name = $env:CP_RELEASE_NAME;
# Url = "http://$env:CP_RELEASE_PROJECT.codeplex.com/releases/view/$env:CP_RELEASE_ID";
# };
# $contentType = "application/x-www-form-urlencoded";
# $method = "POST";

$response = Invoke-WebRequest -Uri $url -Method $method -Headers $headers -TimeoutSec 120 -Body $post -ContentType $contentType -UserAgent "AppVeyor Build Agent";
# $response = Invoke-WebRequest -Uri $url -Method $method -Headers $headers -TimeoutSec 120 -Body $post -ContentType $contentType -UserAgent "AppVeyor Build Agent";

return $response;
}
# return $response;
#}

# trigger the codeplex deployment script
if( $env:CI_DEPLOY_CODEPLEX -eq $true ) {
Invoke-MsBuild -Path "$env:APPVEYOR_BUILD_FOLDER\.appveyor\DeployCodePlex.msbuild" -MsBuildParameters "/verbosity:detailed /p:CI_BUILD_VERSION=$env:CI_BUILD_VERSION /p:CI_BUILD_REVISION=$env:CI_BUILD_REVISION /p:CI_BUILD_MAJOR=$env:CI_BUILD_MAJOR /p:CI_BUILD_MINOR=$env:CI_BUILD_MINOR"
} else {
Write-Host -BackgroundColor Yellow -ForegroundColor Black "Skip `"CodePlex`" deployment as environment variable has not matched (`"CI_DEPLOY_CODEPLEX`" is `"$false`", should be `"$true`")";
}
#if( $env:CI_DEPLOY_CODEPLEX -eq $true ) {
# Invoke-MsBuild -Path "$env:APPVEYOR_BUILD_FOLDER\.appveyor\DeployCodePlex.msbuild" -MsBuildParameters "/verbosity:detailed /p:CI_BUILD_VERSION=$env:CI_BUILD_VERSION /p:CI_BUILD_REVISION=$env:CI_BUILD_REVISION /p:CI_BUILD_MAJOR=$env:CI_BUILD_MAJOR /p:CI_BUILD_MINOR=$env:CI_BUILD_MINOR"
#} else {
# Write-Host -BackgroundColor Yellow -ForegroundColor Black "Skip `"CodePlex`" deployment as environment variable has not matched (`"CI_DEPLOY_CODEPLEX`" is `"$false`", should be `"$true`")";
#}

# publish release
if( $env:CI_DEPLOY_WEBAPI_RELEASE -eq $true -and $env:Platform -eq "x86" ) {
# this only gets called for the x86 platform so it is called once, and because the env:vars may not exist for x64
if( !$env:CP_RELEASE_NAME -or !$env:CP_RELEASE_ID -or !$env:CP_RELEASE_URL ) {
Write-Host -BackgroundColor Red -ForegroundColor White "Unable to read the required values to create the release";
$host.SetShouldExit(500);
return;
}
@($env:DevelopmentApiDomain,$env:ProductionApiDomain) | foreach {
$hostname = $_;
Write-Host "[WebApiRelease] Publishing Release Information '$env:CP_RELEASE_NAME' to $hostname";
$resp = Publish-Release -HostName $hostname;
if($resp.StatusCode -ne 200) {
Write-Host -BackgroundColor Red -ForegroundColor White $resp.StatusDescription;
$host.SetShouldExit($resp.StatusCode);
return;
}
#if( $env:CI_DEPLOY_WEBAPI_RELEASE -eq $true -and $env:Platform -eq "x86" ) {
# # this only gets called for the x86 platform so it is called once, and because the env:vars may not exist for x64
# if( !$env:CP_RELEASE_NAME -or !$env:CP_RELEASE_ID -or !$env:CP_RELEASE_URL ) {
# Write-Host -BackgroundColor Red -ForegroundColor White "Unable to read the required values to create the release";
# $host.SetShouldExit(500);
# return;
# }
# @($env:DevelopmentApiDomain,$env:ProductionApiDomain) | foreach {
# $hostname = $_;
# Write-Host "[WebApiRelease] Publishing Release Information '$env:CP_RELEASE_NAME' to $hostname";
# $resp = Publish-Release -HostName $hostname;
# if($resp.StatusCode -ne 200) {
# Write-Host -BackgroundColor Red -ForegroundColor White $resp.StatusDescription;
# $host.SetShouldExit($resp.StatusCode);
# return;
# }

}
} else {
Write-Host -BackgroundColor Yellow -ForegroundColor Black "Skip `"WebApiRelease`" deployment as environment variable has not matched (`"CI_DEPLOY_CODEPLEX`" is `"$false`", should be `"$true`")";
}
# }
#} else {
# Write-Host -BackgroundColor Yellow -ForegroundColor Black "Skip `"WebApiRelease`" deployment as environment variable has not matched (`"CI_DEPLOY_CODEPLEX`" is `"$false`", should be `"$true`")";
#}

if($env:PUSHBULLET_API_TOKEN) {
$timestamp = (Get-Date).ToUniversalTime().ToString("MM/dd/yyyy hh:mm:ss");
# this allows for multiple tokens, just separate with a comma.
$env:PUSHBULLET_API_TOKEN.Split(",") | foreach {
$pbtoken = $_;
try {
# Send a pushbullet message if there is an api token available
Send-PushbulletMessage -apiKey $pbtoken -Type Message -Title "[Build] Managed.ADB $env:Platform v$env:CI_BUILD_VERSION Build Finished" -msg ("Build completed at $timestamp UTC");
#if($env:PUSHBULLET_API_TOKEN) {
# $timestamp = (Get-Date).ToUniversalTime().ToString("MM/dd/yyyy hh:mm:ss");
# # this allows for multiple tokens, just separate with a comma.
# $env:PUSHBULLET_API_TOKEN.Split(",") | foreach {
# $pbtoken = $_;
# try {
# # Send a pushbullet message if there is an api token available
# Send-PushbulletMessage -apiKey $pbtoken -Type Message -Title "[Build] Managed.ADB $env:Platform v$env:CI_BUILD_VERSION Build Finished" -msg ("Build completed at $timestamp UTC");

if( $env:Platform -eq "x64" -and $env:CI_DEPLOY_PUSHBULLET -eq $true) {
Send-PushbulletMessage -apiKey $pbtoken -Type Message -Title "[Deploy] Managed.ADB v$env:CI_BUILD_VERSION Deployed" -msg ("Deployment completed at $timestamp UTC");
} else {
Write-Host -BackgroundColor Yellow -ForegroundColor Black "Skip `"PushBullet`" deployment as environment variable has not matched (`"CI_DEPLOY_PUSHBULLET`" is `"$false`", should be `"$true`" and `"Platform`" is `"$env:Platform`", should be `"x64`")";
}
} catch [Exeption] {
Write-Error ($_ -replace $pbtoken, "[`$env:PUSHBULLET_API_TOKEN]");
}
}
}
# if( $env:Platform -eq "x64" -and $env:CI_DEPLOY_PUSHBULLET -eq $true) {
# Send-PushbulletMessage -apiKey $pbtoken -Type Message -Title "[Deploy] Managed.ADB v$env:CI_BUILD_VERSION Deployed" -msg ("Deployment completed at $timestamp UTC");
# } else {
# Write-Host -BackgroundColor Yellow -ForegroundColor Black "Skip `"PushBullet`" deployment as environment variable has not matched (`"CI_DEPLOY_PUSHBULLET`" is `"$false`", should be `"$true`" and `"Platform`" is `"$env:Platform`", should be `"x64`")";
# }
# } catch [Exeption] {
# Write-Error ($_ -replace $pbtoken, "[`$env:PUSHBULLET_API_TOKEN]");
# }
# }
#}
Empty file.
8 changes: 5 additions & 3 deletions .appveyor/appveyor.before-build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ try {
Import-Module "$env:APPVEYOR_BUILD_FOLDER\.appveyor\modules\Import-PfxCertificate.psm1";
Import-Module "$env:APPVEYOR_BUILD_FOLDER\.appveyor\modules\Set-BuildVersion.psm1";


Import-PfxCertificate -pfx "$env:APPVEYOR_BUILD_FOLDER\Shared\madb.pfx" -password ((Get-Item Env:\MADB_PFX_KEY).Value) -containerName ((Get-Item Env:\VS_PFX_KEY).Value);

if( (Test-Path -Path 'Env:\VS_PFX_KEY') -and (Test-Path -Path Env:\MADB_PFX_KEY) ) {
Import-PfxCertificate -pfx "$env:APPVEYOR_BUILD_FOLDER\Shared\madb.pfx" -password ((Get-Item Env:\MADB_PFX_KEY).Value) -containerName ((Get-Item Env:\VS_PFX_KEY).Value);
} else {
"VS_PFX_KEY and MAD_PFX_KEY are missing; skipping PFX Certificate import." | Write-Warning;
}
$env:CI_BUILD_DATE = ((Get-Date).ToUniversalTime().ToString("MM-dd-yyyy"));
$env:CI_BUILD_TIME = ((Get-Date).ToUniversalTime().ToString("hh:mm:ss"));

Expand Down
33 changes: 0 additions & 33 deletions .appveyor/appveyor.before-deployment.ps1
Original file line number Diff line number Diff line change
@@ -1,33 +0,0 @@
<#
#
#
#>

$commitMessageRegex = "^\[deploy\:(pre-release|draft|release)\]$";


# Must come from master branch.
# Must not have a PULL Request Number
# Must match regex
if ( ($env:APPVEYOR_REPO_BRANCH -eq "master") -and ($env:APPVEYOR_REPO_COMMIT_MESSAGE -match $commitMessageRegex) ) {
$env:CI_DEPLOY_NUGET = $true;
$env:CI_DEPLOY_GITHUB = $true;
$env:CI_DEPLOY_FTP = $false;
$env:CI_DEPLOY_WebHook = $true;
$env:CI_DEPLOY_WebDeploy = $true;
$env:CI_DEPLOY_CodePlex = $false;
$env:CI_DEPLOY_WEBAPI_RELEASE = $false;
$env:CI_DEPLOY_PUSHBULLET = $true;
$env:CI_DEPLOY = $true;
} else {
# Do not assign a release number or deploy
$env:CI_DEPLOY_NUGET = $false;
$env:CI_DEPLOY_GITHUB = $false;
$env:CI_DEPLOY_FTP = $false;
$env:CI_DEPLOY_WebHook = $false;
$env:CI_DEPLOY_WebDeploy = $false;
$env:CI_DEPLOY_CodePlex = $false;
$env:CI_DEPLOY_WEBAPI_RELEASE = $false;
$env:CI_DEPLOY_PUSHBULLET = $false;
$env:CI_DEPLOY = $false;
}
Empty file.
8 changes: 6 additions & 2 deletions .appveyor/appveyor.install.ps1
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
choco install -y nuget.commandline --version 3.3.0;
& choco install -y nuget.commandline -version 3.3.0;

$env:PATH = "C:\ProgramData\chocolatey\lib\NuGet.CommandLine\tools;$env:PATH";
$env:PATH = "C:\ProgramData\chocolatey\lib\NuGet.CommandLine\tools\;C:\Python34;C:\Python34\Scripts\;$env:PATH";

& python -m pip install --upgrade pip;

pip install codecov;
5 changes: 5 additions & 0 deletions .appveyor/appveyor.test.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# /noshadow /nologo /notrait category=IntegrationTest

& "${ENV:APPVEYOR_BUILD_FOLDER}\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe" -log:All -register:user -target:`"${ENV:APPVEYOR_BUILD_FOLDER}\packages\xunit.runner.console.2.1.0\tools\xunit.console.x86.exe`" -filter:`"+[Managed.Adb]* -[Managed.Adb]Managed.Adb.Properties.*`" -excludebyattribute:*.ExcludeFromCodeCoverage* -hideskipped:All -output:`"${ENV:APPVEYOR_BUILD_FOLDER}\managed.adb.coverage.xml`" -targetargs:`"`\`"${ENV:APPVEYOR_BUILD_FOLDER}\Managed.Adb.Tests\bin\x86\Debug\Managed.Adb.Tests.dll`\`" -verbose -noshadow `";

codecov -f `"${ENV:APPVEYOR_BUILD_FOLDER}\managed.adb.coverage.xml`" -X gcov;
12 changes: 10 additions & 2 deletions .build/BuildAll.msbuild
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<?xml version="1.0"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0" DefaultTargets="BuildAll">


<Target Name="BuildAll">
<MSBuild Projects="$(MSBuildProjectDirectory)\BuildMadBee.msbuild" ContinueOnError="false"
Properties="Platform=x86;PublishMode=Nuget;SignAssembly=true">
Expand All @@ -13,8 +12,17 @@
<Output ItemName="OutputFiles" TaskParameter="TargetOutputs"/>
</MSBuild>

<CreateItem Include="$(MSBuildProjectDirectory)\..\Managed.Adb.Tests\*.csproj">
<Output ItemName="TestProjects" TaskParameter="Include"/>
</CreateItem>
<MSBuild Projects="@(TestProjects)" Properties="PublishMode=Nuget;Platform=x86;Configuration=Debug;">
<Output ItemName="OutputFiles" TaskParameter="TargetOutputs"/>
</MSBuild>



<Exec Command="$(MSBuildProjectDirectory)\..\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe -log:All -register:user -target:$(MSBuildProjectDirectory)\..\packages\xunit.runner.console.2.1.0\tools\xunit.console.x86.exe -filter:&quot;+[Managed.Adb]* -[Managed.Adb]Managed.Adb.Properties.*&quot; -excludebyattribute:*.ExcludeFromCodeCoverage* -hideskipped:All -output:&quot;$(MSBuildProjectDirectory)\..\managed.adb.coverage.xml&quot; -targetargs:&quot;\&quot;$(MSBuildProjectDirectory)\..\Managed.Adb.Tests\bin\x86\Debug\Managed.Adb.Tests.dll\&quot; -verbose -noshadow&quot;"
WorkingDirectory="$(MSBuildProjectDirectory)\..\"
Condition=" '$(CI)' == 'False' OR '$(CI)' == '' " />
</Target>

</Project>
Loading

0 comments on commit acc9645

Please sign in to comment.