# Shamelessly stolen from http://gist.github.com/114476
# .gitignore for .NET projects
# Thanks to Derick Bailey
# http://www.lostechies.com/blogs/derickbailey/archive/2009/05/18/a-net-c-developer-s-gitignore-file.aspx
# Additional Thanks to
# - Alexey Abramov
 
# Standard VS.NET and ReSharper Foo
obj
Bin
*.csproj.user
*.suo
*.cache
Thumbs.db

 
# Other useful stuff
*.bak
*.cache
*.log
*.swp
*.user
_compareTemp
_notes
aspnet_client
httpd.parse.errors
 
# Office Temp Files
~$*
 
# If you have a deploy folder
# deploy
# deploy/*
 
# Exclude ALL DLLs? 
*.dll

*.DS_Store

test/MobileSpecUnitTests/CordovaSourceDictionary.xml
example/CordovaSourceDictionary.xml
templates/standalone/CordovaSourceDictionary.xml
templates/standalone/VERSION
templates/full/VERSION




 