如何避免使用共享项目复制代码文件?

时间:2014-12-30 22:05:43

标签: ios visual-studio-2013 xamarin

我正在研究在不同平台之间共享代码的最佳策略

这有点像噩梦!

PCL我不能轻易地使用它作为我使用的框架之一,Catel,不支持Pcl以及它们具有的所有相关限制

链接文件这是我理想的路线,因为它可以防止重复代码,但是设置所有链接文件在多个项目中都很繁琐,我也不热衷于将所有内容放在一个程序集中用于iOS和一个用于android即所有1个项目中的图层

所以我接着看了VS 2013中的共享项目我喜欢它们的外观但是我错过了什么或者没有办法链接文件而不是创建副本?我真的不想复制代码文件。将它们移动到共享项目的新文件夹将导致我们的subversion系统在显示历史变化等方面造成严重破坏,如果预计完全独立的地方的文件也必须像所有库一样移动,它也会造成严重破坏。引用移动的文件也需要更改

有没有人有办法避免在共享项目中复制文件?我正在考虑在新文件夹中创建项目而不是移动它?也许我误解了什么?

2 个答案:

答案 0 :(得分:1)

我建议创建一个或多个库,将它们放在VCS下,添加单元测试文档API,并仔细分配版本号(参见Semantic Versioning)。别忘了添加那些众所周知的随附文档文件README,CHANGELOG和INSTALL。

然后使用包管理器(例如NuGet)来管理您的应用程序或其他库中所需的库集和版本。

以这种方式开发一个通用的库无疑比从一些服务器位置复制或链接一些帮助程序类更精细。这是一个糟糕的做法,虽然它存在很多潜在的风险(比如破坏项目,丢失文件,未经注意到帮助文件的变化等),并且几乎完全阻止了"库的进一步增强。 / p>

由于支持成本的降低和库的稳步改进,使用文档和单元测试开发适当库所花费的额外成本将很快恢复。

答案 1 :(得分:0)

根据我的阅读,共享项目“纯粹作为一组源代码文件存在,可以包含在其他项目中。当被另一个项目引用时,代码将被有效地编译为该项目的一部分。”从本质上讲,您的共享代码将汇总到引用它的项目的已编译代码中。我认为根据您对所需内容的描述,这是您最好的选择。

Xamarin为共享项目提供了一个很好的指南here