如何在Visual Studio 2015中部署Asp.Net项目?

15

我一直使用Visual Studio Express版本进行Asp.Net项目开发。过去,我会使用基本的FTP同步工具将更新后的文件(*.vb)推送到服务器上,然后这些更改会立即在网站上显示。现在,出现了一个问题,当我修改*.vb文件并通过FTP同步时,除非我先构建该项目,否则它们不会反映在服务器上。此外,对于我们的.NET 4.0项目,VS 2015 14.0.23107添加了以下目录及其内部的大量内容:

/.vs

/My Project

/Obj

这些目录中有很多我不知道什么作用的文件,由于某种原因,我们的项目改变了行为。现在,当我们尝试通过FTP同步时,会有许多其他文件,而且好像更改实际底层源代码不起作用。我们必须同步上述所有目录中的所有其他文件,然后才能看到更改。

这是他们新的做事方式吗?还是因为VS现在是免费的,我们得到了更好的版本,需要“发布”而不是“同步”?

是否有一种简单的方法可以回到以前的做法,只需拥有一个纯粹的包含源文件的目录,并将它们同步到服务器上?如果不行,我们该使用什么方法,应该推送哪些文件到服务器上?


2
为什么你不想使用Visual Studio的发布功能呢?它非常好用。老实说,我不明白为什么你要上传.vb文件。重要的是编译后的dll和资源,所以基本上你需要复制的都可以在构建后得到。如果你想在服务器上重新构建它,那么好吧,复制所有源文件,Obj可以忽略。不过我不知道你从哪里得到了MyProject文件夹 :) 无论如何,只要你使用asp 4.0,就没有什么变化。 - mikus
我过去10年一直使用免费版本进行操作,但是没有发布功能... - wayofthefuture
是时候改变你的习惯了,使用发布功能,如果以前的方法只是因为众多文件而有问题... 那么就不要同步它们。 而且,说实话,通过ftp同步源文件......那真的很糟糕。 如果必须这样做,我会将服务器连接到源代码控制上。 - mikus
@Dude2TheN 仅仅因为你做了10年某件事并不意味着它一直是个好主意。将你的代码暴露给所有人是被黑客攻击的好方法,而且由于编译的原因会导致延迟。这就是为什么ASP.NET将代码编译成dlls的原因。 - Panagiotis Kanavos
3个回答

13

我会将我的评论提升为答案。这个问题有几个方面:

  1. 使用发布功能,这个功能在Visual Studio中已经很长时间可用并且运作良好。有很多方法可以自定义它,并支持许多技术,包括FTP。这也是一种更方便、系统化和可靠的部署方式,而不是手动复制文件到FTP。你还可以与开发人员共享你的发布配置并存储多个配置。没有任何损失。

  2. 我不太明白为什么要将源代码(.vb)文件复制到服务器上。通常你想要实现的是将编译后的DLL + 资源复制到服务器上,而源代码文件则“安全”地保留在开发人员的机器上。如果你确实需要在服务器上编译源代码,那么只需要使用源代码控制、ms build等工具即可。总之,构建/发布操作是为了为你准备部署文件的,手动复制纯属糟糕的行为。

  3. 关于新文件夹:

总之,只要使用asp 4、4.5,就不会有太大变化。只有5.0引入了一些不同的部署规则。你遇到的大部分问题都可以使用正确的工具(Publish)轻松解决。它会知道哪些文件需要传输(包括项目中包含的二进制文件和资源),哪些文件需要忽略(源代码文件、缓存、垃圾文件等)。它方便、易错且功能强大。


1
肯定地说,使用“发布”选项(在解决方案资源管理器中右键单击您的 Web 应用程序,在运行/构建选项下),这样您就可以使用发布时创建的这些文件更新您的服务器站点。如Mikus所提到的,您不需要在发布的站点上使用vb文件,您只需要dll和资源(图像,js,css,resx等)。

祝好。


0

使用Visual Studio提供的发布选项。

这将编译您的项目,然后您可以以可靠的方式托管它。

我个人是在IIS上托管,考虑到我没有本地存储数据,我可以直接发布到IIS服务器上的发布路径。

发布工具非常简单,只需要几分钟。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接