第三方程序集应该放在哪里?好的,所以我们有一个相当大的解决方案,其中包含大约8个不同的项目。这些项目中的每一个都依赖于各种不同的第三方组件。此解决方案位于源代码管理的主干分支中。我们还有大约5个不同的主干分支机构。管理这些第3方程序集的最佳方式是什么?当您添加对程序集的引用然后单击它并查看属性窗口时,我注意到它有一个硬编码的程序集路径。例如:我们所有的分支都映射到“C:\Code\”。所以主干是“C:\CodeTrunk”,分支是“C:\Codesomebranch”。如果我在“C:CodeTrunk”中创建一个名为“Assemblies”的文件夹并将所有第三方程序集放在该文件夹中,然后我添加对程序集的引用,该程序集是否引用相对于?如果单击添加的程序集,我会看到路径属性变灰为“C:CodeTrunkAssembliessomeassembly.dll”。如果我然后从主干分支会发生什么?“somebranch”仍然指“C:CodeTrunkAssembliessomeassembly.dll”,还是指“C:CodesomebranchAssembliessomeassembly.dll”?目前,我们实际上在源代码管理中有一个名为“Assemblies”的分支,它像任何其他分支一样映射到“C:\Code\”。因此,带有引用程序集的项目的所有分支都引用了“C:\CodeAssemblies\someassembly.dll”,并且无论项目位于哪个分支,路径都是相同的。不幸的是,这意味着您必须获取最新版本的分支正在使用以及装配分支,以便成功构建解决方案。总之:是的,使用主干中的程序集文件夹。我更喜欢assembly而不是名称lib。是的,路径已经是相对的。分叉项目时,您将获得正确的程序集文件夹。根据您使用的第三方程序集的数量,您还需要组织您的程序集文件夹,这样您就不会拥有一大堆dll。现在我们有了nuget,您可以将它用于所有支持的oss包,甚至可以为其他3rd方程序集创建您自己的nuget包。值得一提的是,openwrap是nuget的替代品。nuget在解决方案级别存储包,因此每个分支(和主干)都将保留这些分支的版本。我建议这是更好的行为。如果升级第三方,您可能希望将程序集版本分开。过去,我使用svn的外部命令从内部开发的依赖项构建特定版本。没有理由不能将它们放在存储库中并使用外部(或scm的等效项)来获取正确的版本。我已经使用构建事件将dll放在正确的位置。我们的第3方引用解决方案中有一个SolutionItems文件夹。解决方案的每个分支都有自己的副本。添加引用时,我们使用“添加引用”对话框中的“浏览”选项卡并选择与当前项目相关的程序集。项目文件包含以下内容:False..SolutionItemsSomeAssembly.dll我通常创建一个其他人引用的公共项目。在这个公共项目中,我创建了一个名为deps的文件夹(用于依赖项)。然后,每个其他项目都引用公共项目的deps文件夹中的DLL副本。以上是C#学习教程:第三方程序集应该放在哪里?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
