当我在Visual Studio 2008中使用“构建”->“发布网站”时,大多数时候它会编译该网站,然后简单地问我“目标文件夹中的所有文件都将被删除。继续吗?” (或与此相关的内容)。但是,有时在Visual Studio中发布项目时,会出现一个对话框,让我选择完全替换文件夹的内容,还是简单地用更新的版本替换更改的文件。
我更喜欢在发布时不完全删除文件夹,因为部署的应用程序会创建用户文件并缓存文件,因为我不想采取额外的步骤来保留它。但是,我不确定Visual Studio为什么不总是给我这个选项。这是我可以更改的设置吗?它是否与我使用的.NET版本有关?
任何见识表示赞赏!
编辑-2009年1月20日的跟进
我仍然没有弄清楚,但是这里有一些更多的信息。
这是Win XP桌面上一个ASP.NET项目的发布功能:
这是我的Vista笔记本电脑上其他项目的外观:
请注意第二个屏幕快照中的单选按钮,使我可以选择在发布之前删除文件夹的内容,还是仅覆盖匹配的文件。我希望每个项目都有这些选项。
两台计算机都运行Visual Studio 2008 Professional(版本9.0.30729.1 SP,根据“帮助”->“关于”)。完全相同的版本。而且我怀疑操作系统的差异是否会导致此功能更改。必须在某个地方进行设置,对吗?有人知道吗?
最佳答案
John是对的,唯一的区别是您的一个项目是Web Site Project,另一个项目是Web Application project。除非您在Web应用程序项目中,否则不会看到“转换为Web应用程序”选项。我知道...这很容易引起误解。其背后的原因来自于convert to a web application project的方式。如果您打算进行转换(根据设置方式的不同,这可能会很麻烦),那么您需要注意一些区别:
在Web应用程序项目中,所有内容均已预先编译,所有页面隐藏的代码均将编译为.dll ----在Web站点项目中,项目中未进行任何预编译,编译器将编译所有内容以确保其有效,但没有一个已编译的页面被上传。当用户首次尝试访问该站点时,每个页面都将编译成其自己的dll。这意味着在网站项目中,您可以上载单个代码隐藏文件。
命名空间-在Web应用程序项目中,默认情况下,命名空间不是在网站项目中创建的。因此,如果您打算转换它们,则可能需要花费一些时间来添加它们。
项目文件-您将注意到,网站项目没有Web应用程序项目具有的“cproj”文件。
我转换了一些这样的项目,我发现只要“app_code”文件夹中没有很多代码,它们就可以顺利进行。您可以尝试一下,看看它有多容易,如果看起来很痛苦,我建议FileZilla只是通过FTP传输它,省去一些麻烦。
祝你好运
关于asp.net - 如何在不删除目标文件夹内容的情况下在Visual Studio 2008中使用 "Publish"函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/357769/