Subversion并使用IIS进行ASP.NET开发

时间:2008-12-09 14:46:46

标签: asp.net svn iis version-control

我是SVN的新手,并且无法找到以下情况的答案。

我正在开发一个ASP .NET 2.0 Web应用程序。我使用我的本地IIS作为开发Web服务器(即不是Visual Studio Web开发服务器)。我的开发环境是VS2005,Vista,IIS7,TortoiseSVN / AnkhSVN。 VisualSVN安装在服务器上。

我的.sln文件和类库等位于** C:\ Localsource \ Projects \ ProjectName **文件夹中,我的.aspx文件位于我的** C:\ inetpub \ wwwroot \ ProjectName * *文件夹。

我可以设置** C:\ Localsource \ Projects \ ProjectName **的存储库,但是想不出在同一个存储库中为IIS文件夹设置它的方法。

在SVN中处理此开发环境的最佳方法是什么?

非常感谢,

Ant

7 个答案:

答案 0 :(得分:4)

在Visual Studio的解决方案中,您可以拥有一个类库项目,该项目通常位于.sln文件下的目录中。

在这种情况下,他还在解决方案中有一个Web项目,但不在文件目录结构中的.sln文件下面。

他将通过HTTP而不是通过本地文件路径附加到此项目。

IIS会将其作为http://localhost/webapp进行管理,默认情况下会将其放在c:\ inetpub \ wwwroot \ webapp中。 webapp文件夹中的文件不在repo中,因为它们不在解决方案和类库的层次结构中。这是他的问题如何解决。

我的回答是将http://localhost/webapp移动到指向.sln文件下面并且与类库目录相邻的文件夹,然后它们都可以进入仓库。

分离类库和webapp是帮助重用代码并将逻辑与网站分离的最佳实践。

答案 1 :(得分:2)

你能不能只将IIS指向 C:\ Localsource \ Projects \ ProjectName 并设置权限?

答案 2 :(得分:0)

嗯 - 好点。当我到这里时它就像这样设置了,Visual Studio总是在wwwroot文件夹中创建网站,所以我认为wwwroot就是他们必须去的地方。

也许我不得不考虑做一些重新安排......

谢谢!

答案 3 :(得分:0)

好的,我可能在这里很傻但是..为什么你需要将IIS文件夹(即代码库的输出)添加到你的存储库?

更新

我想我应该多说一点..我的意思是说我不确定为什么ASPX与项目分开? Web项目和解决方案中的 n 类库项目有什么问题,添加到存储库中..然后在每个新版本上发布..

如果仅仅是“可能更容易回滚已发布的输出”,那么就这样吧,我只是好奇,因为我没有看到很多人实际上以这种方式工作。

在这种结构中部署解决方案也会容易得多..

答案 4 :(得分:0)

IIS文件夹不是代码库的输出,它是应用程序的一部分。它不是CGI输出或其他任何东西,而是实际运行应用程序的脚本!

这是.aspx页面,它们将具有用户控件和HTML来实际运行应用程序。它是应用程序的一部分,但与VS Studio解决方案分开。

最简单的方法是获得解决方案,然后是C:\ Localsource \ Projects \ ProjectName \ WEBSITE。

将IIS指向该文件夹。

答案 5 :(得分:0)

我想你可能想把这个问题分成两个问题,跟随Dillorscroft的this recommendation

首先,关于发布到生产站点的开发服务器上的材料,我认为您需要对其进行版本控制。首先,您可以回滚任何页面,还可以决定何时具有要提取到生产的开发站点的稳定级别。 (我会从源代码管理系统将其转换为站点映像,然后将该映像与生产站点同步。)

因此,对于第一部分,我们讨论的是网页版本以及支持该网站的所有自定义服务器端材料。

其次,关于站点上使用的组件的开发,他们需要自己的开发项目,因为它是进入开发站点的结果,而不是所有的源,库等。组件是用。因此,这些将拥有自己的项目开发树(将其视为您正在构建一个供其他开发项目使用的库,尽管在这种情况下其他项目是网页)。因此,唯一应该在IIS中显示的是开发站点的“已部署”组件。

您似乎有三个关键问题:

  1. 如何处理需要针对网站的测试的开发以及版本控制的位置(假设它们不属于网站本身)

  2. 您可以轻松安排确保开发网站上的所有内容都受版本控制,并且签入和签出适当。 (这与您用来编辑网页的工具和除了侧面开发的组件之外的其他服务器端gunk有关。)

  3. 轻松地将开发的组件从生成它们的项目中提取到开发站点并在那里签入。

  4. 我对(2)的解决方案和开发网站的版本控制是使用Visual Source Safe与IIS和FrontPage扩展集成,将网站置于版本控制之下。从其他开发项目生成的组件通过VSS共享映射到服务器项目。

    对于SVN,我推测(1)你想看看是否有一个SVN适配器将IIS识别为外部源控制系统,无论哪种方式,(2)都有一个规则来接收来自的组件他们的建设项目进入整个网站项目。

答案 6 :(得分:0)

罗布,

为什么将.aspx文件视为代码库的输出?

它是代码库的一部分。例如,编译后它不是输出。

只是想知道?