【问题标题】:Subversion and using IIS for ASP.NET developmentSubversion 和使用 IIS 进行 ASP.NET 开发
【发布时间】:2010-09-26 01:29:05
【问题描述】:

我是 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 中处理这种开发环境的最佳方式是什么?

非常感谢,

蚂蚁

【问题讨论】:

    标签: asp.net svn iis version-control


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      也许我得考虑重新安排一下……

      谢谢!

      【讨论】:

        【解决方案3】:

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

        更新

        我想我应该进一步澄清这一点。我的意思是我不确定为什么 ASPX 无论如何都与项目分开?添加到您的存储库的解决方案中的 Web 项目和 n 类库项目有什么问题。然后您在每个新版本上发布。..

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

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

        【讨论】:

          【解决方案4】:

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

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

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

          将 IIS 也指向该文件夹。

          【讨论】:

            【解决方案5】:

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

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

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

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

            我的答案是移动http://localhost/webapp 指向.sln 文件下方并与类库目录相邻的文件夹,然后它都可以进入repo。

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

            【讨论】:

              【解决方案6】:

              我认为您可能想将其分为两个问题,遵循 Dillorscroft 的 this recommendation

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

              因此,对于第一部分,我们正在讨论对网页和所有支持网站的自定义服务器端材料进行版本控制。

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

              您似乎有三个关键问题:

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

              2. 确保开发网站上的所有内容都受到版本控制并正确签入和签出是多么容易。 (这与您用于编辑网页的工具和其他服务器端垃圾有关,而不是在旁边开发的组件。)

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

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

              对于 SVN,我推测 (1) 您想查看是否存在 IIS 将识别为外部源代码控制系统的 SVN 适配器,并且无论哪种方式,(2) 都有一个从将他们的建设项目纳入整体网站项目。

              【讨论】:

                【解决方案7】:

                罗伯,

                为什么您认为 .aspx 文件是代码库的输出?

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

                只是想知道?

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2016-11-25
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-01-05
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多