2009-10-19 71 views
0

我们正在尝试整理一些处理依赖项的约定,并将代码签入到svn中。以前的方法基本上都是免费的,这意味着项目无法检出并且没有引用(大多数项目都是C#)。Visual Studio 2008中的自动版本化DLL

我们一次只修复这一步,现在正在将二进制文件检入单独的svn存储库。版本通过它们对应的svn版本号进行区分,因此您可能有类似svnrelease/libraryA/r1000/libraryA.dll的路径。有一件事情是这样的:库A依赖于库B,项目P依赖于库A,但也直接引用库B.如果库A引用B的版本1000,但是项目P的直接引用是修订版2000?

我建议在将它们签入发行版svn repo时在DLL文件名中包含修订号,以便多个版本可以共存。一位同事建议VS2k8可以自动处理这个问题。因此,如果在库A项目中,将其设置为版本1.8,VS将输出命名为“libraryA_1_8.dll”,并且在项目P中,可以引用“$(release)\ libraryA \ $(version)”它可以解决。我找不到任何有关如何操作的信息。这可能吗?如果不是,我的方法是将版本名称包含在DLL二进制文件中是否合理?我知道这个场景暗示重构代码可能是必要的,但是我们正在寻找一个短期解决方案,因为我们对这些东西进行了排序。使用GAC也是可能的,但是现在我们想要坚持分发每个应用程序的DLL。)

回答

3

我通常让每个项目(或更经常的是,每个解决方案)都有一个“lib”目录,我在其中放置解决方案所依赖的程序集。这意味着每个解决方案都独立于其他解决方案。那么,至少有点;每个lib目录中的依赖关系仍然需要相互配合。但它确实给出了每种解决方案都可以单独更新而不会破坏其他解决方案的情况。