【问题标题】:How do I put an ASP.NET website project and class library projects in one .sln file on Subversion如何将 ASP.NET 网站项目和类库项目放在 Subversion 上的一个 .sln 文件中
【发布时间】:2010-03-12 22:14:02
【问题描述】:

我的公司有几个类库,我们在多个网站项目(不是 Web 应用程序项目)中使用。网站项目没有 .sln 文件,但我确信我在过去的研究中已经读到,您可以制作一个空白解决方案并将您的网站和类库项目放入其中。

在回答了我之前的问题之后,这就是我要去的方向(基于http://amadiere.com/blog/2009/06/multiple-subversion-projects-in-one-visual-studio-solution-using-svnexternals/):

/websites
    /website1
        /trunk
            /website1
/libraries
    /library1
        /trunk
            /library1
    /library2
        /trunk
            /library2
    /etc...

然后我打算使用 svn:externals 将 /library1、/library2 等复制到 working_copy/websites/website1/ 文件夹中。

我希望我的团队成员能够检出 website1 的 /trunk 文件夹并获得一个 .sln 文件、/library1 外部、/library2 外部等。我希望该 .sln 文件包含 website1 网站项目,并且所有图书馆外部项目。希望这看起来像:

/working_copy
    /websites
        /website1
            /trunk
                /website1
                /library1 (svn:external of libraries/library1/trunk/library1) 
                /library2 (svn:external of libraries/library2/trunk/library2)
                /etc.
                website1.sln

所以,在这一切结束时,目标是我的队友检查后备箱,打开解决方案,每个人都有完全相同的解决方案。当我们提交时,一切都被适当地提交给颠覆(网站代码和库被提交到它们在 repo 上的适当位置)。

其他人是如何解决这些问题的?如何制作我的团队成员和我可以通过这种方式共享的 .sln 文件?

【问题讨论】:

  • 您的问题是关于如何创建空白解决方案并向其中添加项目或如何组织解决方案的结构?
  • @Andrew:我想知道如何创建一个包含网站和库项目的解决方案文件,我的团队成员可以在更新他们的工作副本后打开该文件。我还想知道是否对这样的库项目使用 svn:externals 并将它们添加到所述解决方案中是否是获得所需最终行为的正确方法。

标签: asp.net svn web class-library


【解决方案1】:

我认为您关于 svn 代码和解决方案文件结构的方法是正确的。如您所述,使用 svn:externals 也是一个好主意。

要创建空白解决方案,只需选择 File->New->Project 并选择 Other Project Types->Visual Studio Solutions->Blank Solution。创建它后,您可以使用菜单 File->Add 向其中添加新的或现有的项目。

【讨论】:

  • 我的“概念证明”中的一个小问题是,我们所有的工作副本都必须具有相同的文件结构,因为网站项目具有来自客户端计算机的文件路径。 ..这是绝对的,不是相对的。这是正确的吗?
  • @JustinP8:我不确定我是否理解你 - 所有工作副本都将具有相同的文件结构 - 与 svn 存储库中的结构相同。 “网站项目上有来自客户端计算机的文件路径”中的路径是什么意思?
  • 我的意思是我认为所有开发人员都必须在他们机器的同一目录中设置他们的工作副本(即 C:\WorkingCopy),因为 Visual Studio 在项目属性中使用绝对文件路径.最后,我想知道我们如何在 subversion repo 上共享一个包含相同网站和类库项目的 .sln 文件。
【解决方案2】:

将库项目放在与网站项目相同的解决方案中是个坏主意。将它们留在自己的解决方案中。在网站项目中,右键单击解决方案资源管理器中的项目并选择“添加引用”。指向您保存构建库代码的位置(可能在文件共享上)。

【讨论】:

  • 我不同意。这取决于“库”项目需要修改的频率以及它们与正在开发的站点的距离。
  • @Andrew:他不是说图书馆项目被用于多个网站吗?
  • 现在我明白了。我的意思是另一回事 - 我现在有两个网站和几个类库的解决方案,这非常方便,因为所有项目都在快速发展。
  • @Andrew:当您的项目正在快速开发时,这是一个很好的结构。这可能是解决方案结构的问题,因为库确实希望位于源代码控制树的不同部分,而不是网站。某些源代码控制/构建系统(例如解决方案中的所有项目)位于解决方案目录下,这不是您希望这些文件长期存放的位置。不过,OP 可能有完全不同的情况。他的库代码可能是稳定的。
  • 不幸的是,我们还没有构建系统。我们正在尝试通过添加 SVN 以及最终的 NAnt &/ MSBuild、CCNET 或 TeamCity 来改善我们的环境,但所有这些东西都需要时间来学习,而我们并不总是拥有这些东西。在我们改善环境时,图书馆引用对我们来说是个问题。使用项目引用对我们来说最方便,因为它允许所有开发人员生成网站在本地使用的 DLL。当我们有自动构建时,BIN 引用会更好。
猜你喜欢
  • 1970-01-01
  • 2021-07-15
  • 2014-07-01
  • 2015-01-05
  • 2010-11-28
  • 1970-01-01
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多