Rewrite the Appveyor build pipelinetags/4.1.8.0
@@ -1,22 +1,186 @@ | |||
version: 1.0.{build} | |||
image: Visual Studio 2017 | |||
environment: | |||
matrix: | |||
- platform: x86 | |||
configuration: Debug | |||
- platform: x86 | |||
configuration: Release | |||
matrix: | |||
fast_finish: false | |||
nuget: | |||
project_feed: true | |||
before_build: | |||
- cmd: nuget restore | |||
build: | |||
parallel: true | |||
verbosity: normal | |||
artifacts: | |||
- path: shadowsocks-csharp\bin\x86\Release\Shadowsocks.exe | |||
name: Shadowsocks-release.exe | |||
- path: shadowsocks-csharp\bin\x86\Debug\Shadowsocks.exe | |||
name: Shadowsocks-debug.exe | |||
# Notes: | |||
# - Minimal appveyor.yml file is an empty file. All sections are optional. | |||
# - Indent each level of configuration with 2 spaces. Do not use tabs! | |||
# - All section names are case-sensitive. | |||
# - Section names should be unique on each level. | |||
#---------------------------------# | |||
# general configuration # | |||
#---------------------------------# | |||
# version format | |||
# Build version format is taken from UI if it is not set | |||
# version: 1.0.{build} | |||
# # branches to build | |||
# branches: | |||
# # whitelist | |||
# only: | |||
# - master | |||
# - production | |||
# # blacklist | |||
# except: | |||
# - gh-pages | |||
#---------------------------------# | |||
# environment configuration # | |||
#---------------------------------# | |||
# Build worker image (VM template) | |||
image: Visual Studio 2017 | |||
# scripts that are called at very beginning, before repo cloning | |||
# init: | |||
# - git config --global core.autocrlf false | |||
# set clone depth | |||
clone_depth: 5 # clone entire repository history if not defined | |||
# environment variables | |||
environment: | |||
# my_var1: value1 | |||
# # this is how to set encrypted variable. Go to "Settings" -> "Encrypt YAML" page in account menu to encrypt data. | |||
# my_secure_var1: | |||
# secure: FW3tJ3fMncxvs58/ifSP7w== | |||
matrix: | |||
- platform: x86 | |||
configuration: Debug | |||
- platform: x86 | |||
configuration: Release | |||
# this is how to allow failing jobs in the matrix | |||
matrix: | |||
fast_finish: false # set this flag to immediately finish build once one of the jobs fails. | |||
# build cache to preserve files/folders between builds | |||
cache: | |||
- packages -> **\packages.config # preserve "packages" directory in the root of build folder but will reset it if packages.config is modified | |||
# - '%LocalAppData%\NuGet\Cache' # NuGet < v3 | |||
- '%LocalAppData%\NuGet\v3-cache' # NuGet v3 | |||
# Automatically register private account and/or project AppVeyor NuGet feeds. | |||
# nuget: | |||
# account_feed: true | |||
# project_feed: true | |||
# disable_publish_on_pr: true # disable publishing of .nupkg artifacts to account/project feeds for pull request builds | |||
# publish_wap_octopus: true # disable publishing of Octopus Deploy .nupkg artifacts to account/project feeds | |||
#---------------------------------# | |||
# build configuration # | |||
#---------------------------------# | |||
# Build settings, not to be confused with "before_build" and "after_build". | |||
# "project" is relative to the original build directory and not influenced by directory changes in "before_build". | |||
build: | |||
# parallel: true # enable MSBuild parallel builds | |||
# publish_nuget: true # package projects with .nuspec files and push to artifacts | |||
# publish_nuget_symbols: true # generate and publish NuGet symbol packages | |||
# include_nuget_references: true # add -IncludeReferencedProjects option while packaging NuGet artifacts | |||
# MSBuild verbosity level | |||
verbosity: normal # quiet|minimal|normal|detailed | |||
# scripts to run before build | |||
before_build: | |||
- cmd: nuget restore | |||
# to run your custom scripts instead of automatic MSBuild | |||
# build_script: | |||
# scripts to run after build (working directory and environment changes are persisted from the previous steps) | |||
after_build: | |||
ps: | | |||
function CalculateHash($file) | |||
{ | |||
$newLine = "`r`n" | |||
$text = (Split-Path $file -Leaf) + $newLine | |||
$text += 'MD5' + $newLine | |||
$text += (Get-FileHash $file -Algorithm MD5).Hash + $newLine | |||
$text += 'SHA-1' + $newLine | |||
$text += (Get-FileHash $file -Algorithm SHA1).Hash + $newLine | |||
$text += 'SHA-256' + $newLine | |||
$text += (Get-FileHash $file -Algorithm SHA256).Hash + $newLine | |||
$text += 'SHA-512' + $newLine | |||
$text += (Get-FileHash $file -Algorithm SHA512).Hash | |||
return $text | |||
} | |||
$WorkingFolder = "$env:APPVEYOR_BUILD_FOLDER\working" | |||
$ExeFileName = "Shadowsocks-$env:APPVEYOR_BUILD_VERSION-$env:CONFIGURATION.exe" | |||
$ExeFile = "$WorkingFolder\$ExeFileName" | |||
$ExeHashFile = "$Exefile.hash" | |||
New-Item $WorkingFolder -ItemType Directory -Force | |||
Copy-Item $env:APPVEYOR_BUILD_FOLDER\shadowsocks-csharp\bin\$env:PLATFORM\$env:CONFIGURATION\Shadowsocks.exe $WorkingFolder\Shadowsocks.exe | |||
Copy-Item $WorkingFolder\Shadowsocks.exe $ExeFile | |||
CalculateHash -file $Exefile | Out-File -FilePath $ExeHashFile | |||
Push-AppveyorArtifact $ExeFile | |||
Push-AppveyorArtifact $ExeHashFile | |||
# Create and deploy the release zip | |||
if ($env:configuration -eq 'Release') | |||
{ | |||
$ReleaseFile = "$WorkingFolder\Shadowsocks.exe" | |||
$HashFile = "$ReleaseFile.hash" | |||
$ZipFile = "$WorkingFolder\Shadowsocks-$env:APPVEYOR_BUILD_VERSION.zip" | |||
$ZipHashFile = "$ZipFile.hash" | |||
# Calculate exe Hash and archieve both exe and hash to zip | |||
CalculateHash -file $ReleaseFile | Out-File -FilePath $hashFile | |||
7z a $ZipFile $ReleaseFile | |||
7z a $ZipFile $HashFile | |||
Push-AppveyorArtifact $ZipFile | |||
# Calculate zip Hash | |||
CalculateHash -file $ZipFile | Out-File -FilePath $ZipHashFile | |||
Push-AppveyorArtifact $ZipHashFile | |||
} | |||
# scripts to run *after* solution is built and *before* automatic packaging occurs (web apps, NuGet packages, Azure Cloud Services) | |||
# before_package: | |||
# to disable automatic builds | |||
#build: off | |||
#---------------------------------# | |||
# deployment configuration # | |||
#---------------------------------# | |||
# providers: Local, FTP, WebDeploy, AzureCS, AzureBlob, S3, NuGet, Environment | |||
# provider names are case-sensitive! | |||
deploy: | |||
# Deploy to GitHub Releases | |||
- provider: GitHub | |||
auth_token: | |||
secure: ZrRlVe3eWp1ccIVZcmFrI7vaCxwz5ewIMSmaPUTjMGyC1rVRlYm7nWWi6Pzkpe0A | |||
description: '%APPVEYOR_BUILD_VERSION%' | |||
artifact: Shadowsocks-%APPVEYOR_BUILD_VERSION%.zip, Shadowsocks-%APPVEYOR_BUILD_VERSION%.zip.hash | |||
draft: true | |||
prerelease: true | |||
on: | |||
branch: master # release from master branch only | |||
configuration: Release | |||
APPVEYOR_REPO_TAG: true # deploy on tag push only | |||
# # scripts to run before deployment | |||
# before_deploy: | |||
# # scripts to run after deployment | |||
# after_deploy: | |||
# # to run your custom scripts instead of provider deployments | |||
# deploy_script: | |||
# # to disable deployment | |||
#deploy: off |
@@ -0,0 +1,24 @@ | |||
# Created by wongsyrone | |||
version: 1.0.{build} | |||
image: Visual Studio 2017 | |||
environment: | |||
matrix: | |||
- platform: x86 | |||
configuration: Debug | |||
- platform: x86 | |||
configuration: Release | |||
matrix: | |||
fast_finish: false | |||
nuget: | |||
project_feed: true | |||
before_build: | |||
- cmd: nuget restore | |||
build: | |||
parallel: true | |||
verbosity: normal | |||
artifacts: | |||
- path: shadowsocks-csharp\bin\x86\Release\Shadowsocks.exe | |||
name: Shadowsocks-release.exe | |||
- path: shadowsocks-csharp\bin\x86\Debug\Shadowsocks.exe | |||
name: Shadowsocks-debug.exe |
@@ -0,0 +1,483 @@ | |||
# Notes: | |||
# - Minimal appveyor.yml file is an empty file. All sections are optional. | |||
# - Indent each level of configuration with 2 spaces. Do not use tabs! | |||
# - All section names are case-sensitive. | |||
# - Section names should be unique on each level. | |||
#---------------------------------# | |||
# general configuration # | |||
#---------------------------------# | |||
# version format | |||
version: 1.0.{build} | |||
# you can use {branch} name in version format too | |||
# version: 1.0.{build}-{branch} | |||
# branches to build | |||
branches: | |||
# whitelist | |||
only: | |||
- master | |||
- production | |||
# blacklist | |||
except: | |||
- gh-pages | |||
# Do not build on tags (GitHub and BitBucket) | |||
skip_tags: true | |||
# Start builds on tags only (GitHub and BitBucket) | |||
skip_non_tags: true | |||
# Skipping commits with particular message or from specific user | |||
skip_commits: | |||
message: /Created.*\.(png|jpg|jpeg|bmp|gif)/ # Regex for matching commit message | |||
author: John # Commit author's username, name, email or regexp maching one of these. | |||
# Including commits with particular message or from specific user | |||
only_commits: | |||
message: /build/ # Start a new build if message contains 'build' | |||
author: jack@company.com # Start a new build for commit of user with email jack@company.com | |||
# Skipping commits affecting specific files (GitHub only). More details here: /docs/appveyor-yml | |||
#skip_commits: | |||
# files: | |||
# - docs/* | |||
# - '**/*.html' | |||
# Including commits affecting specific files (GitHub only). More details here: /docs/appveyor-yml | |||
#only_commits: | |||
# files: | |||
# - Project-A/ | |||
# - Project-B/ | |||
# Do not build feature branch with open Pull Requests | |||
skip_branch_with_pr: true | |||
# Maximum number of concurrent jobs for the project | |||
max_jobs: 1 | |||
#---------------------------------# | |||
# environment configuration # | |||
#---------------------------------# | |||
# Build worker image (VM template) | |||
image: Visual Studio 2015 | |||
# scripts that are called at very beginning, before repo cloning | |||
init: | |||
- git config --global core.autocrlf input | |||
# clone directory | |||
clone_folder: c:\projects\myproject | |||
# fetch repository as zip archive | |||
shallow_clone: true # default is "false" | |||
# set clone depth | |||
clone_depth: 5 # clone entire repository history if not defined | |||
# setting up etc\hosts file | |||
hosts: | |||
queue-server: 127.0.0.1 | |||
db.server.com: 127.0.0.2 | |||
# environment variables | |||
environment: | |||
my_var1: value1 | |||
my_var2: value2 | |||
# this is how to set encrypted variable. Go to "Settings" -> "Encrypt YAML" page in account menu to encrypt data. | |||
my_secure_var1: | |||
secure: FW3tJ3fMncxvs58/ifSP7w== | |||
# environment: | |||
# global: | |||
# connection_string: server=12;password=13; | |||
# service_url: https://127.0.0.1:8090 | |||
# | |||
# matrix: | |||
# - db: mysql | |||
# provider: mysql | |||
# | |||
# - db: mssql | |||
# provider: mssql | |||
# password: | |||
# secure: $#(JFDA)jQ@#$ | |||
# this is how to allow failing jobs in the matrix | |||
matrix: | |||
fast_finish: true # set this flag to immediately finish build once one of the jobs fails. | |||
allow_failures: | |||
- platform: x86 | |||
configuration: Debug | |||
- platform: x64 | |||
configuration: Release | |||
# exclude configuration from the matrix. Works similarly to 'allow_failures' but build not even being started for excluded combination. | |||
exclude: | |||
- platform: x86 | |||
configuration: Debug | |||
# build cache to preserve files/folders between builds | |||
cache: | |||
- packages -> **\packages.config # preserve "packages" directory in the root of build folder but will reset it if packages.config is modified | |||
- projectA\libs | |||
- node_modules # local npm modules | |||
- '%LocalAppData%\NuGet\Cache' # NuGet < v3 | |||
- '%LocalAppData%\NuGet\v3-cache' # NuGet v3 | |||
# enable service required for build/tests | |||
services: | |||
- mssql2014 # start SQL Server 2014 Express | |||
- mssql2014rs # start SQL Server 2014 Express and Reporting Services | |||
- mssql2012sp1 # start SQL Server 2012 SP1 Express | |||
- mssql2012sp1rs # start SQL Server 2012 SP1 Express and Reporting Services | |||
- mssql2008r2sp2 # start SQL Server 2008 R2 SP2 Express | |||
- mssql2008r2sp2rs # start SQL Server 2008 R2 SP2 Express and Reporting Services | |||
- mysql # start MySQL 5.6 service | |||
- postgresql # start PostgreSQL 9.5 service | |||
- iis # start IIS | |||
- msmq # start Queuing services | |||
- mongodb # start MongoDB | |||
# scripts that run after cloning repository | |||
install: | |||
# by default, all script lines are interpreted as batch | |||
- echo This is batch | |||
# to run script as a PowerShell command prepend it with ps: | |||
- ps: Write-Host 'This is PowerShell' | |||
# batch commands start from cmd: | |||
- cmd: echo This is batch again | |||
- cmd: set MY_VAR=12345 | |||
# enable patching of AssemblyInfo.* files | |||
assembly_info: | |||
patch: true | |||
file: AssemblyInfo.* | |||
assembly_version: "2.2.{build}" | |||
assembly_file_version: "{version}" | |||
assembly_informational_version: "{version}" | |||
# Automatically register private account and/or project AppVeyor NuGet feeds. | |||
nuget: | |||
account_feed: true | |||
project_feed: true | |||
disable_publish_on_pr: true # disable publishing of .nupkg artifacts to account/project feeds for pull request builds | |||
publish_wap_octopus: true # disable publishing of Octopus Deploy .nupkg artifacts to account/project feeds | |||
#---------------------------------# | |||
# build configuration # | |||
#---------------------------------# | |||
# build platform, i.e. x86, x64, Any CPU. This setting is optional. | |||
platform: Any CPU | |||
# to add several platforms to build matrix: | |||
#platform: | |||
# - x86 | |||
# - Any CPU | |||
# build Configuration, i.e. Debug, Release, etc. | |||
configuration: Release | |||
# to add several configurations to build matrix: | |||
#configuration: | |||
# - Debug | |||
# - Release | |||
# Build settings, not to be confused with "before_build" and "after_build". | |||
# "project" is relative to the original build directory and not influenced by directory changes in "before_build". | |||
build: | |||
parallel: true # enable MSBuild parallel builds | |||
project: MyTestAzureCS.sln # path to Visual Studio solution or project | |||
publish_wap: true # package Web Application Projects (WAP) for Web Deploy | |||
publish_wap_xcopy: true # package Web Application Projects (WAP) for XCopy deployment | |||
publish_wap_beanstalk: true # Package Web Applications for AWS Elastic Beanstalk deployment | |||
publish_wap_octopus: true # Package Web Applications for Octopus deployment | |||
publish_azure_webjob: true # Package Azure WebJobs for Zip Push deployment | |||
publish_azure: true # package Azure Cloud Service projects and push to artifacts | |||
publish_aspnet_core: true # Package ASP.NET Core projects | |||
publish_core_console: true # Package .NET Core console projects | |||
publish_nuget: true # package projects with .nuspec files and push to artifacts | |||
publish_nuget_symbols: true # generate and publish NuGet symbol packages | |||
include_nuget_references: true # add -IncludeReferencedProjects option while packaging NuGet artifacts | |||
# MSBuild verbosity level | |||
verbosity: quiet|minimal|normal|detailed | |||
# scripts to run before build | |||
before_build: | |||
# to run your custom scripts instead of automatic MSBuild | |||
build_script: | |||
# scripts to run after build (working directory and environment changes are persisted from the previous steps) | |||
after_build: | |||
# scripts to run *after* solution is built and *before* automatic packaging occurs (web apps, NuGet packages, Azure Cloud Services) | |||
before_package: | |||
# to disable automatic builds | |||
#build: off | |||
#---------------------------------# | |||
# tests configuration # | |||
#---------------------------------# | |||
# to run tests against only selected assemblies and/or categories | |||
test: | |||
assemblies: | |||
only: | |||
- asm1.dll | |||
- asm2.dll | |||
categories: | |||
only: | |||
- UI | |||
- E2E | |||
# to run tests against all except selected assemblies and/or categories | |||
#test: | |||
# assemblies: | |||
# except: | |||
# - asm1.dll | |||
# - asm2.dll | |||
# | |||
# categories: | |||
# except: | |||
# - UI | |||
# - E2E | |||
# to run tests from different categories as separate jobs in parallel | |||
#test: | |||
# categories: | |||
# - A # A category common for all jobs | |||
# - [UI] # 1st job | |||
# - [DAL, BL] # 2nd job | |||
# scripts to run before tests (working directory and environment changes are persisted from the previous steps such as "before_build") | |||
before_test: | |||
- echo script1 | |||
- ps: Write-Host "script1" | |||
# to run your custom scripts instead of automatic tests | |||
test_script: | |||
- echo This is my custom test script | |||
# scripts to run after tests | |||
after_test: | |||
# to disable automatic tests | |||
#test: off | |||
#---------------------------------# | |||
# artifacts configuration # | |||
#---------------------------------# | |||
artifacts: | |||
# pushing a single file | |||
- path: test.zip | |||
# pushing a single file with environment variable in path and "Deployment name" specified | |||
- path: MyProject\bin\$(configuration) | |||
name: myapp | |||
# pushing entire folder as a zip archive | |||
- path: logs | |||
# pushing all *.nupkg files in build directory recursively | |||
- path: '**\*.nupkg' | |||
#---------------------------------# | |||
# deployment configuration # | |||
#---------------------------------# | |||
# providers: Local, FTP, WebDeploy, AzureCS, AzureBlob, S3, NuGet, Environment | |||
# provider names are case-sensitive! | |||
deploy: | |||
# FTP deployment provider settings | |||
- provider: FTP | |||
protocol: ftp|ftps|sftp | |||
host: ftp.myserver.com | |||
username: admin | |||
password: | |||
secure: eYKZKFkkEvFYWX6NfjZIVw== | |||
folder: | |||
application: | |||
active_mode: false | |||
beta: true # enable alternative FTP library for 'ftp' and 'ftps' modes | |||
debug: true # show complete FTP log | |||
# Amazon S3 deployment provider settings | |||
- provider: S3 | |||
access_key_id: | |||
secure: ABcd== | |||
secret_access_key: | |||
secure: ABcd== | |||
bucket: my_bucket | |||
folder: | |||
artifact: | |||
set_public: false | |||
# Azure Blob storage deployment provider settings | |||
- provider: AzureBlob | |||
storage_account_name: | |||
secure: ABcd== | |||
storage_access_key: | |||
secure: ABcd== | |||
container: my_container | |||
folder: | |||
artifact: | |||
# Web Deploy deployment provider settings | |||
- provider: WebDeploy | |||
server: http://www.deploy.com/myendpoint | |||
website: mywebsite | |||
username: user | |||
password: | |||
secure: eYKZKFkkEvFYWX6NfjZIVw== | |||
ntlm: false | |||
remove_files: false | |||
app_offline: false | |||
do_not_use_checksum: true # do not use check sum for comparing source and destination files. By default checksums are used. | |||
sync_retry_attempts: 2 # sync attempts, max | |||
sync_retry_interval: 2000 # timeout between sync attempts, milliseconds | |||
aspnet_core: true # artifact zip contains ASP.NET Core application | |||
aspnet_core_force_restart: true # poke app's web.config before deploy to force application restart | |||
skip_dirs: \\App_Data | |||
skip_files: web.config | |||
on: | |||
branch: release | |||
platform: x86 | |||
configuration: debug | |||
# Deploying to Azure Cloud Service | |||
- provider: AzureCS | |||
subscription_id: | |||
secure: fjZIVw== | |||
subscription_certificate: | |||
secure: eYKZKFkkEv...FYWX6NfjZIVw== | |||
storage_account_name: my_storage | |||
storage_access_key: | |||
secure: ABcd== | |||
service: my_service | |||
slot: Production | |||
target_profile: Cloud | |||
artifact: MyPackage.cspkg | |||
# Deploying to NuGet feed | |||
- provider: NuGet | |||
server: https://my.nuget.server/feed | |||
api_key: | |||
secure: FYWX6NfjZIVw== | |||
skip_symbols: false | |||
symbol_server: https://your.symbol.server/feed | |||
artifact: MyPackage.nupkg | |||
# Deploy to GitHub Releases | |||
- provider: GitHub | |||
artifact: /.*\.nupkg/ # upload all NuGet packages to release assets | |||
draft: false | |||
prerelease: false | |||
on: | |||
branch: master # release from master branch only | |||
APPVEYOR_REPO_TAG: true # deploy on tag push only | |||
# Deploying to a named environment | |||
- provider: Environment | |||
name: staging | |||
on: | |||
branch: staging | |||
env_var1: value1 | |||
env_var2: value2 | |||
# scripts to run before deployment | |||
before_deploy: | |||
# scripts to run after deployment | |||
after_deploy: | |||
# to run your custom scripts instead of provider deployments | |||
deploy_script: | |||
# to disable deployment | |||
#deploy: off | |||
#---------------------------------# | |||
# global handlers # | |||
#---------------------------------# | |||
# on successful build | |||
on_success: | |||
- do something | |||
# on build failure | |||
on_failure: | |||
- do something | |||
# after build failure or success | |||
on_finish: | |||
- do something | |||
#---------------------------------# | |||
# notifications # | |||
#---------------------------------# | |||
notifications: | |||
- provider: Email | |||
to: | |||
- user1@email.com | |||
- user2@email.com | |||
subject: 'Build {{status}}' # optional | |||
message: "{{message}}, {{commitId}}, ..." # optional | |||
on_build_status_changed: true | |||
# HipChat | |||
- provider: HipChat | |||
auth_token: | |||
secure: RbOnSMSFKYzxzFRrxM1+XA== | |||
room: ProjectA | |||
template: "{message}, {commitId}, ..." | |||
# Slack | |||
- provider: Slack | |||
incoming_webhook: http://incoming-webhook-url | |||
# ...or using auth token | |||
- provider: Slack | |||
auth_token: | |||
secure: kBl9BlxvRMr9liHmnBs14A== | |||
channel: development | |||
template: "{message}, {commitId}, ..." | |||
# Campfire | |||
- provider: Campfire | |||
account: appveyor | |||
auth_token: | |||
secure: RifLRG8Vfyol+sNhj9u2JA== | |||
room: ProjectA | |||
template: "{message}, {commitId}, ..." | |||
# Webhook | |||
- provider: Webhook | |||
url: http://www.myhook2.com | |||
headers: | |||
User-Agent: myapp 1.0 | |||
Authorization: | |||
secure: GhD+5xhLz/tkYY6AO3fcfQ== | |||
on_build_success: false | |||
on_build_failure: true | |||
on_build_status_changed: true |
@@ -1,6 +0,0 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<configuration> | |||
<config> | |||
<add key="repositoryPath" value="shadowsocks-csharp\3rd" /> | |||
</config> | |||
</configuration> |
@@ -4,7 +4,6 @@ | |||
<xs:element name="Weavers"> | |||
<xs:complexType> | |||
<xs:all> | |||
<xs:element name="Caseless" minOccurs="0" maxOccurs="1" type="xs:anyType" /> | |||
<xs:element name="Costura" minOccurs="0" maxOccurs="1"> | |||
<xs:complexType> | |||
<xs:all> | |||
@@ -91,6 +90,7 @@ | |||
</xs:attribute> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="Caseless" minOccurs="0" maxOccurs="1" type="xs:anyType" /> | |||
</xs:all> | |||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> | |||
<xs:annotation> | |||
@@ -1,10 +1,10 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<packages> | |||
<package id="Caseless.Fody" version="1.8.3" targetFramework="net462" developmentDependency="true" /> | |||
<package id="Costura.Fody" version="3.3.2" targetFramework="net462" developmentDependency="true" /> | |||
<package id="Fody" version="4.0.0" targetFramework="net462" developmentDependency="true" /> | |||
<package id="GlobalHotKey" version="1.1.0" targetFramework="net462" /> | |||
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net462" /> | |||
<package id="StringEx.CS" version="0.3.1" targetFramework="net462" developmentDependency="true" /> | |||
<package id="ZXing.Net" version="0.16.4" targetFramework="net462" /> | |||
<package id="Caseless.Fody" version="1.8.3" targetFramework="net472" /> | |||
<package id="Costura.Fody" version="3.3.3" targetFramework="net472" /> | |||
<package id="Fody" version="4.2.1" targetFramework="net472" developmentDependency="true" /> | |||
<package id="GlobalHotKey" version="1.1.0" targetFramework="net472" /> | |||
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net472" /> | |||
<package id="StringEx.CS" version="0.3.1" targetFramework="net472" developmentDependency="true" /> | |||
<package id="ZXing.Net" version="0.16.5" targetFramework="net472" /> | |||
</packages> |
@@ -1,7 +1,7 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<Import Project="3rd\Caseless.Fody.1.8.3\build\Caseless.Fody.props" Condition="Exists('3rd\Caseless.Fody.1.8.3\build\Caseless.Fody.props')" /> | |||
<Import Project="3rd\Costura.Fody.3.3.2\build\Costura.Fody.props" Condition="Exists('3rd\Costura.Fody.3.3.2\build\Costura.Fody.props')" /> | |||
<Import Project="..\packages\Costura.Fody.3.3.3\build\Costura.Fody.props" Condition="Exists('..\packages\Costura.Fody.3.3.3\build\Costura.Fody.props')" /> | |||
<Import Project="..\packages\Caseless.Fody.1.8.3\build\Caseless.Fody.props" Condition="Exists('..\packages\Caseless.Fody.1.8.3\build\Caseless.Fody.props')" /> | |||
<PropertyGroup> | |||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |||
@@ -69,19 +69,18 @@ | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<Reference Include="Caseless, Version=1.8.3.0, Culture=neutral, PublicKeyToken=409b3227471b0f0d, processorArchitecture=MSIL"> | |||
<HintPath>3rd\Caseless.Fody.1.8.3\lib\net452\Caseless.dll</HintPath> | |||
<HintPath>..\packages\Caseless.Fody.1.8.3\lib\net452\Caseless.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Costura, Version=3.3.2.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL"> | |||
<HintPath>3rd\Costura.Fody.3.3.2\lib\net40\Costura.dll</HintPath> | |||
<Reference Include="Costura, Version=3.3.3.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\Costura.Fody.3.3.3\lib\net40\Costura.dll</HintPath> | |||
</Reference> | |||
<Reference Include="GlobalHotKey, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL"> | |||
<HintPath>3rd\GlobalHotKey.1.1.0\lib\GlobalHotKey.dll</HintPath> | |||
<Private>True</Private> | |||
<HintPath>..\packages\GlobalHotKey.1.1.0\lib\GlobalHotKey.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Microsoft.CSharp" /> | |||
<Reference Include="Microsoft.VisualBasic" /> | |||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> | |||
<HintPath>3rd\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> | |||
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PresentationCore" /> | |||
<Reference Include="System" /> | |||
@@ -94,11 +93,11 @@ | |||
<Reference Include="System.Windows.Forms.DataVisualization" /> | |||
<Reference Include="System.XML" /> | |||
<Reference Include="WindowsBase" /> | |||
<Reference Include="zxing, Version=0.16.4.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL"> | |||
<HintPath>3rd\ZXing.Net.0.16.4\lib\net461\zxing.dll</HintPath> | |||
<Reference Include="zxing, Version=0.16.5.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\ZXing.Net.0.16.5\lib\net47\zxing.dll</HintPath> | |||
</Reference> | |||
<Reference Include="zxing.presentation, Version=0.16.4.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL"> | |||
<HintPath>3rd\ZXing.Net.0.16.4\lib\net461\zxing.presentation.dll</HintPath> | |||
<Reference Include="zxing.presentation, Version=0.16.5.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\ZXing.Net.0.16.5\lib\net47\zxing.presentation.dll</HintPath> | |||
</Reference> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -162,8 +161,8 @@ | |||
<Compile Include="Controller\Service\Sip003Plugin.cs" /> | |||
<Compile Include="Proxy\Socks5Proxy.cs" /> | |||
<Compile Include="Settings.cs" /> | |||
<Compile Include="StringEx.cs" /> | |||
<Compile Include="Controller\System\Hotkeys\Hotkeys.cs" /> | |||
<Compile Include="StringEx.cs" /> | |||
<Compile Include="Util\ProcessManagement\Job.cs" /> | |||
<Compile Include="Util\ProcessManagement\ThreadUtil.cs" /> | |||
<Compile Include="Util\Sockets\LineReader.cs" /> | |||
@@ -291,11 +290,6 @@ | |||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName> | |||
<Install>false</Install> | |||
</BootstrapperPackage> | |||
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0"> | |||
<Visible>False</Visible> | |||
<ProductName>.NET Framework 2.0 %28x86%29</ProductName> | |||
<Install>false</Install> | |||
</BootstrapperPackage> | |||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0"> | |||
<Visible>False</Visible> | |||
<ProductName>.NET Framework 3.0 %28x86%29</ProductName> | |||
@@ -318,51 +312,15 @@ | |||
</BootstrapperPackage> | |||
</ItemGroup> | |||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | |||
<UsingTask TaskName="CosturaCleanup" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" TaskFactory="CodeTaskFactory"> | |||
<ParameterGroup> | |||
<Config Output="false" Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem" /> | |||
<Files Output="false" Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem[]" /> | |||
</ParameterGroup> | |||
<Task Evaluate="true"> | |||
<Reference xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Include="System.Xml" /> | |||
<Reference xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Include="System.Xml.Linq" /> | |||
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System" /> | |||
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System.IO" /> | |||
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System.Xml.Linq" /> | |||
<Code xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Type="Fragment" Language="cs"><![CDATA[ | |||
var config = XElement.Load(Config.ItemSpec).Elements("Costura").FirstOrDefault(); | |||
if (config == null) return true; | |||
var excludedAssemblies = new List<string>(); | |||
var attribute = config.Attribute("ExcludeAssemblies"); | |||
if (attribute != null) | |||
foreach (var item in attribute.Value.Split('|').Select(x => x.Trim()).Where(x => x != string.Empty)) | |||
excludedAssemblies.Add(item); | |||
var element = config.Element("ExcludeAssemblies"); | |||
if (element != null) | |||
foreach (var item in element.Value.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).Where(x => x != string.Empty)) | |||
excludedAssemblies.Add(item); | |||
var filesToCleanup = Files.Select(f => f.ItemSpec).Where(f => !excludedAssemblies.Contains(Path.GetFileNameWithoutExtension(f), StringComparer.InvariantCultureIgnoreCase)); | |||
foreach (var item in filesToCleanup) | |||
File.Delete(item); | |||
]]></Code> | |||
</Task> | |||
</UsingTask> | |||
<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild;NonWinFodyTarget"> | |||
<CosturaCleanup Config="FodyWeavers.xml" Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" /> | |||
</Target> | |||
<Import Project="..\packages\Fody.4.2.1\build\Fody.targets" Condition="Exists('..\packages\Fody.4.2.1\build\Fody.targets')" /> | |||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> | |||
<PropertyGroup> | |||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> | |||
</PropertyGroup> | |||
<Error Condition="!Exists('3rd\Costura.Fody.3.3.2\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '3rd\Costura.Fody.3.3.2\build\Costura.Fody.props'))" /> | |||
<Error Condition="!Exists('3rd\Caseless.Fody.1.8.3\build\Caseless.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '3rd\Caseless.Fody.1.8.3\build\Caseless.Fody.props'))" /> | |||
<Error Condition="!Exists('3rd\Fody.4.0.0\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '3rd\Fody.4.0.0\build\Fody.targets'))" /> | |||
<Error Condition="!Exists('..\packages\Fody.4.2.1\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.4.2.1\build\Fody.targets'))" /> | |||
<Error Condition="!Exists('..\packages\Caseless.Fody.1.8.3\build\Caseless.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Caseless.Fody.1.8.3\build\Caseless.Fody.props'))" /> | |||
<Error Condition="!Exists('..\packages\Costura.Fody.3.3.3\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.3.3.3\build\Costura.Fody.props'))" /> | |||
</Target> | |||
<Import Project="3rd\Fody.4.0.0\build\Fody.targets" Condition="Exists('3rd\Fody.4.0.0\build\Fody.targets')" /> | |||
<!-- 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"> | |||
@@ -36,7 +36,7 @@ | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<Reference Include="GlobalHotKey, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL"> | |||
<HintPath>..\shadowsocks-csharp\3rd\GlobalHotKey.1.1.0\lib\GlobalHotKey.dll</HintPath> | |||
<HintPath>..\packages\GlobalHotKey.1.1.0\lib\GlobalHotKey.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System" /> | |||
<Reference Include="System.Management" /> | |||
@@ -1,4 +1,4 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<packages> | |||
<package id="GlobalHotKey" version="1.1.0" targetFramework="net462" /> | |||
<package id="GlobalHotKey" version="1.1.0" targetFramework="net472" /> | |||
</packages> |