2008-11-04 141 views
2

我想在Visual Studio中有一些共享代码(代码库,控件,实用程序,帮助程序类等)。我不是指共享程序集,我的意思是共享代码(即,我想用我的应用程序,可执行程序集运送一个程序集)。Visual Studio&Source Control:如何共享代码?

其他开发环境中的技术方法是将公共源代码放在我的机器上的路径中,并为IDE提供搜索代码文件的路径列表。

Visual Studio不支持代码搜索路径。

备份破解解决方案是将源代码反复复制到每个项目中。但是为了将它们全部保存为一个版本,它们在源代码管理中共享。当您的源代码管理提供程序是Microsoft Visual SourceSafe(它支持共享文件)时,此功能很好。

但是其他源代码管理产品(CVS,Subversion,Microsoft Team Foundation Source Save Server,SVN)不支持共享文件。

那么,其他人如何避免运行DLL的可执行文件?


更新1

它是单个文件部署的问题。在ClickOnce的3个文件夹(即多个文件)

+0

SVN支持通过svn共享文件:externals属性 – 2008-11-04 16:09:29

+0

哦不!有较少的源代码管理项目? :O – CindyH 2008-11-04 16:39:15

回答

3

产生18号文件,我可以提出两个解决方案:

  1. Visual Studio中,您可以将链接添加到文件中。选择“添加现有项目”,选择你的文件,然后点击“添加”按钮旁边的箭头。弹出窗口将显示,您应该从那里选择“添加为链接”。现在,您可以将常用代码存储在一个位置(文件夹)中。

enter image description here

  • 编译您共同代码在可重复使用的组件和在项目中使用它们。部署时,使用ILMerge将所有程序集合并成一个。我个人更喜欢这个选项。
  • 0

    我们使用ClickOnce部署,该部署非常可靠。使用ClickOnce,有在概念上是单个对象,该应用程序虽然下载了许多文件(包括DLLS),但对用户隐藏。共享代码然后通过共享项目进行处理。

    但是,如果你实际的物理需要的只是一个单一的文件,将ClickOnce的不适合你......

    1

    在我的工作中,我们开始使用解决文件夹Subversion´s external这个问题。你只需要放一个“外部”财产上侑根文件夹(或任何文件夹),如:

     
    ExternalLib https://yourrepo/SharedLibs/trunk 
    

    当你更新项目,文件夹ExternalLib将被创建并与repo's内容填充。任何提交将分别反映在回购。

    所以,你可以让你的后备黑客的解决方案与SVN太工程=)

    0

    也许考虑有共享的组件和使用像ILMerge工具在你的构建过程将它们全部合并到一个错误装配。