当我在Visual Studio 2008中使用Build-> Publish Web Site时,大多数时候它会编译站点,然后只是问我"目标文件夹中的所有文件都将被删除.继续?" (或者那种效果).但是,有时候,在Visual Studio中发布项目时,我会得到一个对话框,让我可以选择完全替换文件夹的内容,或者只是用更新的版本替换更改的文件.
我更喜欢在不完全删除文件夹的情况下发布,因为已部署的应用程序会创建用户文件和缓存文件,因为它已被使用,我不想采取额外的步骤来保存.但是,我不确定为什么Visual Studio并不总是给我这个选项.这是一个我可以改变的地方吗?它与我正在使用的.NET版本有关吗?
任何见解都表示赞赏!
编辑 - 关注2009-01-20
我仍然没有想到这一点,但这里有更多的信息.
以下是Win XP桌面上一个ASP.NET项目的发布功能:
这就是我的Vista笔记本电脑上的不同项目的样子:
请注意第二个屏幕截图中的单选按钮,允许我选择在发布之前删除文件夹的内容,或者只是覆盖匹配的文件.我想为每个项目提供这些选项.
两台计算机都运行Visual Studio 2008 Professional(版本9.0.30729.1 SP,根据帮助 - >关于).完全相同的版本.我怀疑操作系统的差异导致了这种功能的改变.它必须是某个地方的设置,对吧?有人知道吗?
John是对的,唯一的区别是你的一个项目是一个Web站点项目,另一个是Web应用程序项目.除非您在Web应用程序项目中,否则您将看不到" 转换为Web应用程序 "选项.我知道......这是非常误导的.这背后的原因源于您转换为Web应用程序项目的方式.如果你计划转换它(这可能是一个真正的痛苦,取决于它的设置),那么你需要意识到一些差异:
在Web应用程序项目中,一切都是预编译的,所有代码隐藏页面都将被编译成.dll ----在Web站点项目项目中 没有任何预编译,编译器将编译所有内容以确保它是有效但没有编译的页面被上传.当用户首次尝试访问该站点时,每个页面都被编译到其自己的dll中.这意味着在网站项目中,您可以上传单个代码隐藏文件.
命名空间 - 在Web应用程序项目中,默认情况下会在Web站点项目中创建名称空间.因此,如果您计划转换它们,则可能需要花一些时间添加它们.
项目文件 - 您会注意到网站项目没有Web应用程序项目的"cproj"文件.
我已经转换了一些这样的项目,只要"app_code"文件夹中没有很多代码,我发现它们相当顺利.你可以尝试一下,看看它有多容易,如果它看起来很痛苦,我会建议FileZilla只是FTP它并省去一些头痛.
祝好运