项目管理(有点)

时间:2013-10-10 20:04:51

标签: c#

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

[MainBranchFolder]

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

  • [Branch1子文件夹]

    • File2.dll

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

来实现这样的事情

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

3 个答案:

答案 0 :(得分:1)

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

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

退房:http://git-scm.com/

答案 1 :(得分:1)

使用Team Foundation Server,您可以使用自定义构建执行此操作。

答案 2 :(得分:0)

所有回复似乎都有代码版本主题,我看到的并不是您想要的。

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

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


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


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

第1部分:注册表项

HKLM \ Software \ FoobarInternational \ CommonLibrary1 [String]

在CommonLibrary1中,我存储了公共DLL的路径。

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

认为插件架构 - 它在dll的当前dir中查找,如果失败,则检查提供的注册表项是否正确位置。


解决方案2:散步


以类似于解决方案1的方式,库在其当前目录中启动,查找DLL,如果找不到,则检查更高的1目录。


以下是一些可以帮助您解决问题的链接:

或取决于您的需要。 。

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