MonoTouch:在子项目中添加DLL引用

时间:2012-03-01 22:59:48

标签: xamarin.ios monodevelop flurry atmhud

在某种程度上,我在这里寻找最佳实践。

我有一个由我的许多应用共享的常见项目。该项目有FlurryAnaylics和ATMHud DLL作为参考。

如果我还没有在主项目中引用这些DLL,那么应用程序通常会(但不总是)在调试到设备测试中失败。在调试到模拟器中,我不需要将这些DLL添加到主项目中。

所以,问题是:我是否必须在子项目中的主项目中包含对DLL的引用?

1 个答案:

答案 0 :(得分:1)

我尽可能使用对项目文件(csproj文件)的引用而不是对程序集(.dll)的引用。它使很多事情变得更容易,例如:

  • 代码导航(IDE);
  • 自动构建依赖项(您正在阅读的源代码是您正在构建的源代码,而不是可能不同步的代码);
  • 源代码级调试(即使你没有它,你肯定会同步);
  • (更简单)在Debug | Release | ...配置之间切换;
  • 更改定义(或任何项目级选项);

E.g。

<强> Solution1.sln

  • Project1a.csproj
  • MonoTouch.Dialog.csproj(链接到../ Common / MonoTouch.Dialog.csproj)

<强> Solution2.sln

  • Project2a.csproj
  • MonoTouch.Dialog.csproj(链接到../ Common / MonoTouch.Dialog.csproj)

<强> Common.sln

  • MonoTouch.Dialog.csproj

大型解决方案可能会因此而受到影响(构建性能,跨文件搜索......)。它们越大,每个人都不太可能知道它的每个部分。因此,优势的回报会减少,而每个项目的添加都会带来不便。

E.g。我不希望引用Mono中的每个框架程序集(但个人我可以使用MonoTouch的所有SDK程序集; - )

注意:在设备上调试时,使用程序集引用 不会导致随机错误。如果您可以创建这样的测试用例填写错误报告: - )