【问题标题】:Project management (sort of)项目管理(类)
【发布时间】:2013-10-11 06:23:42
【问题描述】:

我们有一个大项目(解决方案),其中有几个使用一些通用程序集(无 GAC)的小项目。每次更改项目并且必须进行测试时,解决方案中的所有文件都必须部署在测试位置,与主分支分开。 我只想部署已更改的文件并使用主分支中未更改的文件。像这样的:

[主分支文件夹]

  • File1.dll
  • File2.dll
  • File3.dll
  • .....

  • [Branch1 子文件夹]

    • File2.dll

因此,Branch1 仅包含 File2.dll。当程序运行时,它将在当前文件夹中查找任何 dll,如果没有找到,将查找父文件夹。 我知道这个问题的解决方案需要一些代码更改,但我想知道是否可以仅使用配置来实现这样的事情

[编辑] 我看到几个人建议一些源代码管理。但是,这不是源代码问题,而是二进制代码问题。我的示例中的 MainBranch 不是源代码,是一个包含我项目中所有已编译程序集(exe 和 dll)的文件夹

【问题讨论】:

  • 主分支是什么意思?

标签: c#


【解决方案1】:

听起来您可以使用一些软件配置管理 (SCM)!

那里有很多选择,快速谷歌搜索会发现很多。我的偏好绝对是 GIT。

查看:http://git-scm.com/

【讨论】:

    【解决方案2】:

    使用 Team Foundation Server,您可以通过自定义构建来做到这一点。

    【讨论】:

      【解决方案3】:

      所有回复似乎都有一个代码版本控制主题,我看到的不是你想要的。

      我遇到了一个不同但可能相似的情况:

      3 个应用程序,每个应用程序都需要相同的库。 发布主应用程序需要更新其他 2 个。 GAC 不是一个选项(不要问!)


      解决方案 1:我知道它在哪里,给我该死的东西! (这也让我存储了主安装程序规定的各种有用的常用设置。)


      我的解决方案是维护一个已知的注册表项:

      第 1 部分:注册表项

      HKLM\Software\FoobarInternational\CommonLibrary1 [字符串]

      在 CommonLibrary1 中,我存储了通用 DLL 的路径。

      第 2 部分:常见的“查找我的 dll”库

      思考插件架构 - 它在当前目录中查找 dll,如果失败,则检查提供的注册表项的正确位置。


      解决方案 2:散步


      与解决方案 1 类似,库从其当前目录开始,查找 DLL,如果未找到,则检查更高的 1 个目录。


      这里有一些链接可以帮助您:

      或者取决于你需要什么。 .

      string directoryName = new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName;  
      

      【讨论】:

      • 谢谢,尽管我仍然希望我能找到一个更加面向配置的解决方案,不需要或只需要最少的代码。这对我来说似乎需要一些实质性的编码,不是那么困难或那么大,但它会影响到作为我们项目基础的很少改变的部分
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 2021-12-06
      • 2011-10-04
      • 2019-11-24
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多