diff --git a/Publish.ps1 b/Publish.ps1
deleted file mode 100644
index 7646e36..0000000
--- a/Publish.ps1
+++ /dev/null
@@ -1,55 +0,0 @@
-param([switch]$nopush)
-
-
-function pack
-{
- param([string]$project)
-
- Write-Host "Packing $($project).csproj" -Foreground Blue
- NuGet.exe pack "$($project)\$($project).csproj" -Build -OutputDir publish -Version "$($version.NuGetVersion)" -Properties depversion="$($version.NuGetVersion)"
-}
-
-
-function push
-{
- param([string]$project)
-
- Write-Host "Pushing $($project).csproj" -Foreground Blue
- NuGet.exe push "publish\X2Software.$($project).$($version.NuGetVersion).nupkg" -apikey "$($nugetkey)" -Source https://www.nuget.org/api/v2/package
-}
-
-
-$projects = @(
- "Tapeti.Annotations",
- "Tapeti",
- "Tapeti.DataAnnotations",
- "Tapeti.Flow",
- "Tapeti.SimpleInjector"
-)
-
-
-New-Item -Path publish -Type directory -Force | Out-Null
-
-$version = GitVersion.exe | Out-String | ConvertFrom-Json
-$nugetkey = Get-Content .nuget.apikey
-
-
-Write-Host "Publishing version $($version.NuGetVersion) using API key $($nugetkey)"-Foreground Cyan
-
-foreach ($project in $projects)
-{
- pack($project)
-}
-
-
-if ($nopush -eq $false)
-{
- foreach ($project in $projects)
- {
- push($project)
- }
-}
-else
-{
- Write-Host "Skipping push" -Foreground Blue
-}
\ No newline at end of file
diff --git a/README.md b/README.md
index 4d31212..2b8f6ee 100644
--- a/README.md
+++ b/README.md
@@ -6,3 +6,14 @@ The documentation for Tapeti is available on Read the Docs:
[Master branch](http://tapeti.readthedocs.io/en/stable/)
[![Documentation Status](https://readthedocs.org/projects/tapeti/badge/?version=stable)](http://tapeti.readthedocs.io/en/stable/?badge=stable)
+
+
+## Builds
+Builds are automatically run using AppVeyor, with the resulting packages being pushed to NuGet.
+
+
+Latest build
+[![Build status](https://ci.appveyor.com/api/projects/status/p5w9yr4xlhvoy02i?svg=true)](https://ci.appveyor.com/project/MvRens/tapeti)
+
+Master build
+[![Build status](https://ci.appveyor.com/api/projects/status/p5w9yr4xlhvoy02i/branch/master?svg=true)](https://ci.appveyor.com/project/MvRens/tapeti/branch/master)
diff --git a/Tapeti.Annotations/Tapeti.Annotations.nuspec b/Tapeti.Annotations/Tapeti.Annotations.nuspec
index acceaf2..d2684ac 100644
--- a/Tapeti.Annotations/Tapeti.Annotations.nuspec
+++ b/Tapeti.Annotations/Tapeti.Annotations.nuspec
@@ -1,17 +1,17 @@
-
-
-
- X2Software.Tapeti.Annotations
- $version$
- $title$
- Mark van Renswoude
- Mark van Renswoude
- https://git.x2software.net/pub/tapeti/raw/master/UNLICENSE
- https://git.x2software.net/pub/tapeti
- https://git.x2software.net/pub/tapeti/raw/master/resources/icons/Tapeti.Annotations.png
- false
- Annotations for Tapeti
-
- rabbitmq tapeti
-
+
+
+
+ X2Software.Tapeti.Annotations
+ $version$
+ Tapeti Annotations
+ Mark van Renswoude
+ Mark van Renswoude
+ https://raw.githubusercontent.com/MvRens/Tapeti/master/UNLICENSE
+ https://github.com/MvRens/Tapeti
+ https://raw.githubusercontent.com/MvRens/Tapeti/master/resources/icons/Tapeti.Annotations.png
+ false
+ Annotations for Tapeti
+
+ rabbitmq tapeti
+
\ No newline at end of file
diff --git a/Tapeti.DataAnnotations/Tapeti.DataAnnotations.nuspec b/Tapeti.DataAnnotations/Tapeti.DataAnnotations.nuspec
index a1b9042..571c3a5 100644
--- a/Tapeti.DataAnnotations/Tapeti.DataAnnotations.nuspec
+++ b/Tapeti.DataAnnotations/Tapeti.DataAnnotations.nuspec
@@ -1,20 +1,20 @@
-
-
-
- X2Software.Tapeti.DataAnnotations
- $version$
- $title$
- Mark van Renswoude
- Mark van Renswoude
- https://git.x2software.net/pub/tapeti/raw/master/UNLICENSE
- https://git.x2software.net/pub/tapeti
- https://git.x2software.net/pub/tapeti/raw/master/resources/icons/Tapeti.DataAnnotations.png
- false
- DataAnnotations validation extension for Tapeti
-
- rabbitmq tapeti dataannotations
-
-
-
-
+
+
+
+ X2Software.Tapeti.DataAnnotations
+ $version$
+ Tapeti DataAnnotations
+ Mark van Renswoude
+ Mark van Renswoude
+ https://raw.githubusercontent.com/MvRens/Tapeti/master/UNLICENSE
+ https://github.com/MvRens/Tapeti
+ https://raw.githubusercontent.com/MvRens/Tapeti/master/resources/icons/Tapeti.DataAnnotations.png
+ false
+ DataAnnotations validation extension for Tapeti
+
+ rabbitmq tapeti dataannotations
+
+
+
+
\ No newline at end of file
diff --git a/Tapeti.Flow.SQL/Tapeti.Flow.SQL.nuspec b/Tapeti.Flow.SQL/Tapeti.Flow.SQL.nuspec
index 686bbf9..0a667c6 100644
--- a/Tapeti.Flow.SQL/Tapeti.Flow.SQL.nuspec
+++ b/Tapeti.Flow.SQL/Tapeti.Flow.SQL.nuspec
@@ -1,21 +1,21 @@
-
-
-
- X2Software.Tapeti.Flow.SQL
- $version$
- $title$
- Mark van Renswoude
- Mark van Renswoude
- https://git.x2software.net/pub/tapeti/raw/master/UNLICENSE
- https://git.x2software.net/pub/tapeti
- https://git.x2software.net/pub/tapeti/raw/master/resources/icons/Tapeti.Flow.SQL.png
- false
- SQL backing repository for the Tapeti Flow package
-
- rabbitmq tapeti sql
-
-
-
-
-
+
+
+
+ X2Software.Tapeti.Flow.SQL
+ $version$
+ Tapeti Flow SQL
+ Mark van Renswoude
+ Mark van Renswoude
+ https://raw.githubusercontent.com/MvRens/Tapeti/master/UNLICENSE
+ https://github.com/MvRens/Tapeti
+ https://raw.githubusercontent.com/MvRens/Tapeti/master/resources/icons/Tapeti.Flow.SQL.png
+ false
+ SQL backing repository for the Tapeti Flow package
+
+ rabbitmq tapeti sql
+
+
+
+
+
\ No newline at end of file
diff --git a/Tapeti.Flow/Tapeti.Flow.nuspec b/Tapeti.Flow/Tapeti.Flow.nuspec
index 1df4677..54a7e1f 100644
--- a/Tapeti.Flow/Tapeti.Flow.nuspec
+++ b/Tapeti.Flow/Tapeti.Flow.nuspec
@@ -1,21 +1,21 @@
-
-
-
- X2Software.Tapeti.Flow
- $version$
- $title$
- Menno van Lavieren, Mark van Renswoude
- Mark van Renswoude
- https://git.x2software.net/pub/tapeti/raw/master/UNLICENSE
- https://git.x2software.net/pub/tapeti
- https://git.x2software.net/pub/tapeti/raw/master/resources/icons/Tapeti.Flow.png
- false
- Flow extension for Tapeti
-
- rabbitmq tapeti flow
-
-
-
-
-
+
+
+
+ X2Software.Tapeti.Flow
+ $version$
+ Tapeti Flow
+ Menno van Lavieren, Mark van Renswoude
+ Mark van Renswoude
+ https://raw.githubusercontent.com/MvRens/Tapeti/master/UNLICENSE
+ https://github.com/MvRens/Tapeti
+ https://raw.githubusercontent.com/MvRens/Tapeti/master/resources/icons/Tapeti.Flow.png
+ false
+ Flow extension for Tapeti
+
+ rabbitmq tapeti flow
+
+
+
+
+
\ No newline at end of file
diff --git a/Tapeti.SimpleInjector/Tapeti.SimpleInjector.nuspec b/Tapeti.SimpleInjector/Tapeti.SimpleInjector.nuspec
index 6af6063..e53c636 100644
--- a/Tapeti.SimpleInjector/Tapeti.SimpleInjector.nuspec
+++ b/Tapeti.SimpleInjector/Tapeti.SimpleInjector.nuspec
@@ -1,20 +1,20 @@
-
-
-
- X2Software.Tapeti.SimpleInjector
- $version$
- $title$
- Mark van Renswoude
- Mark van Renswoude
- https://git.x2software.net/pub/tapeti/raw/master/UNLICENSE
- https://git.x2software.net/pub/tapeti
- https://git.x2software.net/pub/tapeti/raw/master/resources/icons/Tapeti.SimpleInjector.png
- false
- SimpleInjector integration package for Tapeti
-
- rabbitmq tapeti simpleinjector
-
-
-
-
+
+
+
+ X2Software.Tapeti.SimpleInjector
+ $version$
+ Tapeti SimpleInjector
+ Mark van Renswoude
+ Mark van Renswoude
+ https://raw.githubusercontent.com/MvRens/Tapeti/master/UNLICENSE
+ https://github.com/MvRens/Tapeti
+ https://raw.githubusercontent.com/MvRens/Tapeti/master/resources/icons/Tapeti.SimpleInjector.png
+ false
+ SimpleInjector integration package for Tapeti
+
+ rabbitmq tapeti simpleinjector
+
+
+
+
\ No newline at end of file
diff --git a/Tapeti/Tapeti.nuspec b/Tapeti/Tapeti.nuspec
index 249c4c2..b1eb7ca 100644
--- a/Tapeti/Tapeti.nuspec
+++ b/Tapeti/Tapeti.nuspec
@@ -1,20 +1,20 @@
-
-
-
- X2Software.Tapeti
- $version$
- $title$
- Mark van Renswoude
- Mark van Renswoude
- https://git.x2software.net/pub/tapeti/raw/master/UNLICENSE
- https://git.x2software.net/pub/tapeti
- https://git.x2software.net/pub/tapeti/raw/master/resources/icons/Tapeti.png
- false
- Controller-based framework for RabbitMQ microservice architectures
-
- rabbitmq tapeti
-
-
-
-
+
+
+
+ X2Software.Tapeti
+ $version$
+ Tapeti
+ Mark van Renswoude
+ Mark van Renswoude
+ https://raw.githubusercontent.com/MvRens/Tapeti/master/UNLICENSE
+ https://github.com/MvRens/Tapeti
+ https://raw.githubusercontent.com/MvRens/Tapeti/master/resources/icons/Tapeti.png
+ false
+ Controller-based framework for RabbitMQ microservice architectures
+
+ rabbitmq tapeti
+
+
+
+
\ No newline at end of file
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 0000000..aa68da9
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,40 @@
+image: Visual Studio 2015
+
+install:
+ - choco install gitversion.portable -pre -y
+
+before_build:
+ - nuget restore
+ - ps: gitversion /l console /output buildserver /updateAssemblyInfo
+
+after_build:
+ - cmd: ECHO nuget pack Tapeti\Tapeti.nuspec -version "%GitVersion_NuGetVersion%" -prop "target=%CONFIGURATION%"
+ - cmd: nuget pack Tapeti\Tapeti.nuspec -version "%GitVersion_NuGetVersion%" -prop "target=%CONFIGURATION%"
+ - cmd: appveyor PushArtifact "Tapeti.%GitVersion_NuGetVersion%.nupkg"
+ - cmd: nuget pack Tapeti.Annotations\Tapeti.Annotations.nuspec -version "%GitVersion_NuGetVersion%" -prop "target=%CONFIGURATION%"
+ - cmd: appveyor PushArtifact "Tapeti.Annotations.%GitVersion_NuGetVersion%.nupkg"
+ - cmd: nuget pack Tapeti.DataAnnotations\Tapeti.DataAnnotations.nuspec -version "%GitVersion_NuGetVersion%" -prop "target=%CONFIGURATION%"
+ - cmd: appveyor PushArtifact "Tapeti.DataAnnotations.%GitVersion_NuGetVersion%.nupkg"
+ - cmd: nuget pack Tapeti.Flow\Tapeti.Flow.nuspec -version "%GitVersion_NuGetVersion%" -prop "target=%CONFIGURATION%"
+ - cmd: appveyor PushArtifact "Tapeti.Flow.%GitVersion_NuGetVersion%.nupkg"
+ - cmd: nuget pack Tapeti.SimpleInjector\Tapeti.SimpleInjector.nuspec -version "%GitVersion_NuGetVersion%" -prop "target=%CONFIGURATION%"
+ - cmd: appveyor PushArtifact "Tapeti.SimpleInjector.%GitVersion_NuGetVersion%.nupkg"
+
+assembly_info:
+ patch: false
+
+build:
+ project: Tapeti.sln
+
+platform:
+ - Any CPU
+
+configuration:
+ - Release
+
+deploy:
+ provider: NuGet
+ api_key:
+ secure: wEch4shvYGZUNRW0z/Rm8jdKR95lVnzS0QncQg6a0wH4k/Bt6N/B5bs6AidVcyUD
+ skip_symbols: false
+ artifact: /.*\.nupkg/
\ No newline at end of file