# 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
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




 