With TDS, I can set a non-local URL as my target website, leave the deploy folder blank, and do a "sync with Sitecore" just fine to push items. But it says I need a folder specified if I want to use the "Deploy" option instead. Is there any way to do ad-hoc remote deployments through Visual Studio?
There are a few options here (specifically for TDS). I haven't listed non-TDS options like doing MS Deploy packages or Visual Studio publish, since the question is specific about TDS remote deployment.
- UNC SHARE: You can setup a UNC share on your target server and then set the deploy folder to that network path (e.g. \MyServerName\Website). If you use that approach, make sure you lock the security down on that share.
- Sitecore Package Deployer: The Hedgehog Sitecore Package Deployer (https://www.teamdevelopmentforsitecore.com/Blog/sitecore-package-deployer) can be installed on your target instance and install packages for you. Generate packages with your items and files and then deploy to the secure 'Data' Folder that you specify during your configuration. The deployer will install for you.
- Team City: My preference is not to do deployments directly from the developer machine and to put things through Continuous Integration. Set up the UNC share, but lock it down so only the TeamCity server/user can access it. This is more secure than allowing all devs access to the server. Then let TeamCity do your deployments for you.