views:

9909

answers:

6

When I use Build->Publish Web Site in Visual Studio 2008, most of the time it compiles the site, and then simply asks me "All files in the target folder will be deleted. Continue?" (or something to that effect). On occasion, however, when publishing a project in Visual Studio, I would get a dialog box that would give me the choice of replacing the folder's contents completely, or simply replacing changed files with newer version.

I much prefer to publish without completely obliterating the folder, because the deployed application creates user files and cache files as it's been used that I don't want to take extra steps to preserve. However, I'm not sure why Visual Studio doesn't always give me this option. Is this a setting somewhere I can change? Is it tied to the version of .NET I'm using?

Any insight is appreciated!

Edit - Followup on 2009-01-20

I still haven't figured this out, but here's some more information.

Here's what the publish function looks like for one ASP.NET project on my Win XP desktop:

And here's what it looks like for a different project on my Vista laptop:

Notice the radio buttons in the second screenshot that allow me to choose to either delete the contents of the folder prior to publishing, or merely to overwrite matching files. I'd like to have these options for every project.

Both computers are running Visual Studio 2008 Professional (version 9.0.30729.1 SP, according to Help->About). The exact same version. And I doubt the OS difference is causing this functionality change. It's got to be a setting somewhere, right? Does anyone know?

A: 

I think the real answer to your question is that you should put your user files and cache files somewhere else.

When publishing a web site Visual Studio is designed to make sure that the target folder contains your web site files, and absolutely nothing else.

Guge
Ideally, yes. But I'm not the only developer at my organization and some things are out of my control.
Joshua Carmody
A: 

Apparently this feature is coming in VS2010 - that's what Vishal Joshi announced at TechEd EMEA in session "PDC307: Microsoft Visual Studio 10: Web Development Futures"

Zhaph - Ben Duguid
But I already have it in VS2008! I just can't figure out why it seems to work for some projects and not others.
Joshua Carmody
It looks like they are different project types - one is a web site or application project, and one has a Web Deployment Project.The thing is, deploying a site using either will still delete all files that aren't part of the project - the Vista one will just not upload files that haven't changed.
Zhaph - Ben Duguid
+2  A: 

That dialog is different for Web site projects and Web application projects. In my MVC projects (Web application projects), I see the additional options. In my regular ol' web site projects, I see the first dialog posted.

John Sheehan
Hmm... that's a helpful observation. But are you sure that's the only difference? I'm pretty sure both projects I mentioned above are regular web site projects. The one that has the non-overwrite option has "convert to web application" as an option when I right-click on the solution.
Joshua Carmody
On my machine, that's the difference. Are you using Web Deployment Projects or is it installed?
John Sheehan
I'm not sure why this was voted down. It wasn't me.
Joshua Carmody
Per Chris's answer, you appear to be right.
Joshua Carmody
+6  A: 

John is right, the only difference is one of your projects is a Web Site Project and the other is a Web Application project. You will not see the "convert to web application" option unless you are in a Web Application project. I know... it is very misleading. The reason behind this stems from the the way you convert to a web application project. If you plan on converting it(which can be a real pain in arse, depending on how it is set up) then you need to be aware of a few differences:

In a Web Application project everything is pre-compiled all the codebehind pages will be compiled into a .dll ---- In a Web Site Project nothing in the project is pre-compiled, the compiler will compile everything to ensure it is valid but none of the compiled pages are uploaded. When a user first attempts to access the site each page is compiled into its own dll. This means in a Web Site Project you are able to upload a single codebehind file.

Namespaces - In a Web Application project namespaces are created by default in a Web Site Project they are not. So you may have to spend some time adding them if you plan on converting them.

Project files - you will notice that A Website Project does not have a "cproj" file a Web Application project does.

I have converted a few of these project I find they go fairly smooth as long as there is not a lot of code in the "app_code" folder. You can give it a try and see how easy it is, if it looks like it is going to be a pain a would suggest FileZilla just FTP it and save yourself some headache.

Good Luck

cgreeno
A: 

The site has been updated from the site in the updated layer.

vino
Uhhh... what? I don't understand.
Joshua Carmody
A: 

Not sure if this option will be suitable for you but you could use the copy website function from the solution explorer. Click on the "Copy Website" icon at the top of the solution explorer.

jforward5