Visual Studio 2010 - 如何在构建期间发布到本地IIS

6
我正在使用VS 2010开发一个ASP.Net MVC Web应用程序。我想在本地IIS 7下运行Web应用程序,并将其放在自己的Web下。我已经设置了我的hosts文件,使得*.dev指向我的本地ip,这样当我创建一个IIS Web时,我只需要给它一个唯一的主机名,比如myapp.dev,它就可以运行。
这是我第一个使用VS开发的Web应用程序项目,我正在尝试弄清楚如何在单击构建时使VS将Web应用程序代码发布到我的本地Web。我已经有了发布部分的工作,但我想自动化它。此外,我可能还要添加一些不同层(类库),这些层也需要一次性构建和发布。
总之,我想要的是,在进行代码更改后,我想单击“重新生成解决方案”或“重新生成项目”,并在成功构建后,我希望更改的文件被发布到我在本地IIS中为此特定Web应用程序设置的Web根目录中。然后,我只需刷新浏览器以测试我的更改。
是否有任何关于这种设置的教程可以参考?

1
为什么要发布呢?为什么不直接将IIS指向你的源代码呢? - John Saunders
John,这对Web应用程序项目有什么作用?我已经为网站项目做过了,但是认为WAP是一种不同的动物。我的应用程序是一个MVC 2项目。 - JBeckton
4个回答

5

您是否在开发过程中想使用IIS而不是ASP.NET开发Web服务器?如果是的话,您可以转到Web项目的设置,然后转到Web选项卡以更改开发Web服务器为IIS并指定URL。这样,您无需发布任何内容,虚拟目录将指向您的项目文件夹。因此,当您编译和运行Web应用程序时,它将捕获任何更改。如果这不是您想要的,您可以在后期构建步骤中使用msdeploy命令行工具打包和部署/更新本地IIS上的Web应用程序。这样,每次构建时,msdeploy将运行并使用更改更新IIS。


我考虑过这个问题,但我不想在虚拟目录 http://localhost/myapp/ 下运行我的应用程序。由于我是 ASP.Net 的新手,在从开发环境转移到生产环境时,我一直在处理各种资源的路径问题。像在生产环境中一样在 Web 根目录下运行我的开发站点只是为了帮助我更好地解决这个问题。 - JBeckton

3

这比我想象的简单得多。在VS 2010中,有一个名为“一键发布”的新功能,并且还有一个工具栏可以使用。我已经为我的本地IIS Web创建了发布配置文件,所以我只需要点击发布按钮!解决方案中的所有项目都将被构建并发布。只要项目都设置为依赖项,它们就会与Web项目一起构建和发布。

现在,我只需要一个用于一键发布的热键,就可以完成全部操作。

我想,如果我在csproj文件中定义了其他构建任务,那么所有这些任务也将被执行。


2

虽然我正在使用2008,但我发现使用NAnt来构建和发布要容易得多。它允许您拥有更大的灵活性,您可以使用它来发布到本地和生产站点。


0

如果你是ASP.NET的新手,我建议你查看Url.Content来发布链接(如果你正在使用MVC),或者System.Web.VirtualPathUtility.ToAbsolute("~/...")(如果不是),并明智地使用波浪号来避免处理具有不同根的站点发布的副作用。学习这个将打开使用上面的一些建议的机会(例如将IIS指向你的项目目录)。

另一个选择是打开你的项目文件并使用AfterBuild构建目标进行操作。取消注释它并添加一个aspnetcompiler任务以及一个发布任务也可以实现相同的效果,如果你正在进行一键发布,你还可以根据$(Configuration)指定条件来分离你的构建任务。

我还建议你阅读有关如何为Web项目定制构建的文章。已经有很多文章写得非常好了,这将使你走上正确的道路。


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