# 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

/temp/*

*.dll

# Ignore template zip files
*.zip


 
# 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




 