2012-03-01 26 views
1

在某種程度上,我在這裏尋找最佳實踐添加DLL引用。的MonoTouch:在子項目

我有一個由許多我的應用程序共享的公共項目。該項目有FlurryAnaylics和ATMHud DLL作爲參考。

如果我不在主項目中引用這些DLL,則應用程序經常(但不總是)在調試到設備測試中失敗。在調試模擬器中,我不需要將這些DLL添加到主項目中。

所以,問題是:我必須在主項目中包含對DLL的引用嗎?我一直在子項目中使用DLL。

+1

當你說它失敗的bug報告,究竟它是如何失敗?你能多解釋一下嗎? – 2012-03-01 23:27:57

+0

該應用程序在調試設備上啓動然後爆炸。控制檯只是轉儲崩潰通知,沒有調試信息。 – 2012-03-02 02:24:11

回答

1

只要有可能我用引用過的引用文件(文件的csproj)項目,以集(.dll)。它使得很多事情更容易,如:

  • 代碼導航(IDE);
  • 自動構建依賴(你正在閱讀的源代碼是你正在構建的一個,不是潛在的失同步);
  • 源代碼級調試(即使你可以擁有它,沒有它,你一定要在同步);發佈| |調試之間
  • (容易)開關...配置;
  • 改變定義(或任何項目級別選項);

例如,

Solution1.sln

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

Solution2.sln

  • Project2a.csp ROJ
  • MonoTouch.Dialog.csproj(鏈接到../Common/MonoTouch.Dialog.csproj)

Common.sln

  • MonoTouch.Dialog.csproj

大型解決方案可能會因此而受到影響(構建性能,跨文件搜索...)。他們得到的越多,每個人都必須知道每個部分的可能性越小。所以這些優勢的收益遞減,而不便隨着每個項目的增加而增加。

E.g.我不希望有內部單聲道(每個框架集的引用,但個人我可以用MonoTouch的;-)

注意的所有SDK組件生活:與程序集的引用工作應該不會引起你隨機在設備上調試時發生錯誤錯誤。如果你可以創建一個測試用例填寫:-)

+0

我不知道這是否是一個錯誤,但是當我不包括ATMHud.dll和FlurryAnalytics.dll在主項目,它失敗。添加對這些參考(我沒有來源)使問題消失。 – 2012-03-02 02:25:05

+0

如何在MonoDevelop中添加對子項目的引用?在VisualStudio中,我打開「解決方案」並在打開的面板上選中「添加到當前解決方案」框。我沒有看到如何在MonoDevelop中執行此操作。 – 2012-09-12 17:44:55

相關問題