visual studio debug on different system - visual-studio-2010

I want to write/debug my code in visual studio 2010 in my laptop.
Once I am done i want it to run on my desktop visual studio in debug mode.
Currently I copy the code using RDP.How do I do this more efficiently?
I can not afford to buy Team foundation. I was hoping there is a svn service.
Thanks.

You say one solution yourself - use svn, or other version control.
Another alternative is folder sharing. If you wish to work with the laptop offline as well, I recommend svn or git.
As a programmer, you must use version control. It's your friend!

It really depends what you want to achieve. If you just want to debug on the desktop machine, sharing a folder is the most efficient way as it doesn't involve lots of copying and risking files being out of date, though it may be slow if your application requires a lot of file accesses. If the application has a lot of data files then an alternative could be to mount a shared drive on the desktop machine but use robocopy to keep the directories in sync:
robocopy /mir \\laptop\source\myproject c:\desktopmachine\myproject
You can also do remote debugging from the laptop which is very powerful.
If you want the test (as opposed to debug) the application, then a more robust approach is to create a release build (and installer, if appropriate) on the laptop and then copy that across to your desktop. As akauppi says, you should definitely be using SVN or another version control system for source control, but I think that's another issue.

Related

Copying Windows Registry Changes in Multi-stage Builds

I'd like to use multi-stage builds more in Windows images, but a limitation I've hit is that many programs - particularly those for components like Visual Studio and related tools - alter the Windows Registry during their installation process.
Are there any ways to dump the registry changes made while building one stage to a *.reg file so that you could then apply those changes in a later build stage?
Well, I jumped the gun a bit with this; Windows doesn't support BuildKit and thus you cannot use multi-stage builds with Windows images at the moment anyway.
Should that change and I figure out how to use it with registry-altering installers, I'll update.
https://github.com/microsoft/Windows-Containers/issues/34

Syncing Visual Studio project

I have a Visual Studio project that I want to work on in two computers.
I'm looking for how to sync the project between the computers.
I have a few options, and I'm open to other suggestions:
Dropbox
OneDrive, which is integrated nicely in Windows 10.
Github, although I'm not sure if it is used for this purpose, and don't want my code to be public.
What has worked for you?
Thanks!
If you use Visual Studio, then Visual Studio Team Services is good for you.
For source control you can use TFVC or Git and it's free (for team up to 5 people) and repositories are private.
GitHub is a nice choice, not only to share between machines, but mainly as version control.
Also, if your version of Visual Studio supports it, you could use TFS - the versioning integrated to it.
OneDrive or Dropbox doesn't have version control - once your project grows, you will notice it is really needed.
For source control I would prefer tortoise svn (over git and bitbucket) - because it's easier to use.
For data replication / sync - google drive. Its similar to microsoft one drive, but bit faster.
Oh common - downvoters ! :-) I know you're absolutely love git, but unfortunately it's too over abstract, lacks of proper error handling, to difficult to use.
We can skype if you think otherwise, and I can prove it to you.

Deploying from VS 2010 using XCopy

I think this is a simple question, but I can't seem to find a clean solution.
I am working on a parallel program on my local (dual core) developer machine. I develop for a while, then I want to run it on a multi-core server somewhere else. I have a settings file that is different (paths, etc.) between the two instances, but otherwise it is a straight deployment.
What I would like to do is have a "publish" option where I can just deploy it to server when I am ready. I don't want it to overwrite the settings file on the server, but I do want it to update any other files. I publish a ASP.NET web site this way and it works great. However, when I publish a console app, it wants to actually create an installer, which I don't want. I really just want an XCOPY publish over FTP, but one that won't overwrite changed files on the server.
I've tried subversion, and some FTP syncing things, but those all require an extra step. Is there an easy way to do this?
Not 100% sure what you're after, but WinSCP (free) has a directory synchronisation feature, which monitors a local directory for changes, and FTPs updated files to your server.
You can't do the type of publishing you want with a console app in Visual Studio 2010. It will always try to build a click once deployment which isn't your goal. I think this thing was possible to do in previous versions of Visual Studio 2010.
I have a similar situation and I just resign myself to copying in windows explorer for local servers. With your destination being an FTP site you will need to find some sort of automated or batch FTP utility unfortunately.
You could launch the ftp batch from the "Run the post-build event" feature in the Build Events tab on the console app's property page. That would save you some extra clicks.

Install wizard for my windows form application - or not?

I am wondering about the need for an install wizard for my little Windows Forms application. No database access, just file access on a shared network drive.
I have seen times when an executable is sent in an email, copied to a desktop and used.
Other times when an 'install wizard' seems to be used to set up the application.
What dictates the need for this or not?
And if I want to use one - what needs to be added to my windows form app?
If your application is truly just an .exe file, it's probably okay to distribute it as-is without an installer. This might be preferable for more advanced users, because they won't have to worry about cleaning up a broken/unwanted install - they can just delete the file and be done with it.
On the other hand, most Windows users are used to working with installers, and having shortcuts automatically created on the desktop or Start->Programs. This is where an .msi can really help. Also, using an installer will usually put your application in the "Add or Remove Programs" control panel, which most people know how to use. Also, if your application is more than just a single .exe file (e.g. multiple .dlls and resource files), you'll probably want to use an .msi.
Creating an installer is easy, look at "Setup Projects" in Visual Studio.
An installer is almost always a good idea, because it can work out what dependencies your application has - which you may not even be aware of.
It also looks more professional and users will have more confidence in it.
There's an open source installer called NSIS that's pretty good, if you find the Visual Studio setup wizard too clunky, as I sometimes have.
Sometimes simply copying a file just isn't sufficient, this is when you need a setup program.
Checking if the correct version of .NET is installed
Installing C++ runtime dependencies
Creating a desktop shortcut
Setting up "default" configuration data
Adding exceptions to the Windows Firewall
Preventing installation on unsupported systems such as Windows 95/98/ME
etc, etc.
If your program is a stand-alone application with no dependencies and can run on a stock-standard install of Windows 95... then you don't need to worry about setup ;) But if your app has any external dependencies then you want to spend some time on setup.

Visual Studio: Load a Project from a Remote Location

With Visual Studio (2008), is it possible to load a project (to a solution) that exists on a remote location ?
Basically what I want to do is somehow "host" a VS Project online and then load this project to a solution from a remote location. Is this possible in some way?
This is so that I can keep integrity when loading my Utils Library (used in tons of projects) and I don't want copies of my project in different projects and all having different versions etc...
I know that a possible solution is to have the Utils Library project hosted in SVN and then the folder would sync to it directly, but is there any other way to do this (ie, something more direct) ?
Yes, if you can map a network drive to it, the you can open the files from the location in visual studio.
you can map network drives to ftp servers by entering "ftp://your-ftp-server" in the path box.
Like others have said though, it's not really recommended. VS reads/writes a lot more than just to edit the main project files, it does all kinds of other stuff, so your network traffic be higher than you really want.
Or you could look at dropbox. It comes with a explorer addin that keeps your local PC in sync with the server.
My recommendation would be to use source control like subversion though.
It is possible, but not recommended (you'd be better using some form of source control, be it SVN, or a shared source provider like Codeplex (for open source projects) or TFS Preview (for closed source projects)
Is it not simpler just to have the compiled dll referenced in each solution? The way you are proposing is going to open you to changes to the project for one solution causing problems in a bunch of other solutions, that you might not immediately see.
Better to have a version of the Utils dll referenced in each sub solution and you can then update that dll when necessary, and test at the same time.

Resources