2012-02-16 24 views
7

我正在嘗試構建一組類庫來共享我們要創建的應用程序之間的代碼。MonoTouch項目的類庫,「沒有使用主動配置構建」,如何解決?

但是,我無法正確創建項目,我看不到我做錯了什麼。

讓我經歷我使用重現此步驟,也許有人在這裏可以看到我在做什麼錯:

  1. 在一個新的MonoDevelop的情況下,我去文件 - >新建方案
  2. 我挑MonoTouch的圖書館項目模板,並給它一個合適的名字
  3. 我那麼新的應用程序項目添加到解決方案(使用該庫中的應用程序來模擬),類型爲「iPhone單一視圖的應用」
  4. 我使應用程序項目成爲啓動項目
  5. 我的應用程序項目添加到庫項目的引用
  6. 我再建

這工作,如果我挑運行 - >調試菜單項,我可以看到應用程序對外開放模擬器。

假設我現在要測試它在iPhone上,所以我訪問的下拉工具欄中,選擇「調試| iPhone」建設目標,並立即類庫項目是灰色的搭配:

(沒有內置在積極配置)

如果我用鼠標右鍵單擊該解決方案,檢查配置映射,採摘與模擬器或iPhone的任何東西時,該類庫從視野中完全消失,無法選擇爲建立。

構建目標下拉菜單現在也有6個項目,用於iPhone的調試,發佈,調試/發佈以及用於模擬器的調試/發佈。顯然,只有調試和發佈不適用於iPhone或模擬器,最終會構建類庫。

我在這裏做錯了什麼?

在另一個項目中,我沒有奢望能夠尋找解決方案,我最終創建了一個空的通用項目,是否是「正確」的方法來減輕這個問題?

+3

我剛試過這個,它看起來很壞。我建議你在http://bugzilla.xamarin.com上提交一個錯誤,以便可以正確地跟蹤問題。 – 2012-02-16 15:07:49

+2

這裏同樣的事情,任何消息?通過始終構建Debug解決方案配置,然後更改回Debug | IPhone配置,我可以解決這個問題,但是很容易忘記,然後想知道爲什麼在構建之間對類庫進行小的更改時,未將更改部署到iPhone。在構建和部署之間交換解決方案配置是單調乏味且容易出錯的。 – 2012-03-23 16:15:58

+1

解決方法可能是手動編輯* .sln文件,您是否有另一個* .sln文件,可以與之比較? – jonathanpeppers 2012-09-04 12:03:20

回答

2

有趣的是,如果您在應用程序項目之後添加了Lib項目,則不會發生這種情況。

我按照您所述創建了Lib項目,然後添加了單視圖iPhone應用程序,然後添加了另一個Lib(Lib2)。然後,我比較了的.sln文本,發現庫中缺少以下行(相對於LIB2):

{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhone.ActiveCfg = Debug|Any CPU 
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhone.Build.0 = Debug|Any CPU 
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU 
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU 

{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhone.ActiveCfg = Release|Any CPU 
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhone.Build.0 = Release|Any CPU 
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU 
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU 

使用自己的GUID,而不是我的。 GUID將靠近文件的頂部。例如,我的樣子(滾動到結束):

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib", "Lib.csproj", "{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}" 

我然後重新打開該溶液和LIB是現在在兩個Debug|iPhoneDebug|iPhoneSimulator配置。


作爲一個側面說明,儘管庫不會在Debug|iPhoneDebug|iPhoneSimulator建設,從Debug二進制兼容了。我可以構建並運行該應用程序。

+0

我發現它實際上發生在「。 Build.0「部分缺失,因此只需將其添加到每個條目。真的很煩人,因爲它會給項目帶來更多問題。 – 2013-04-25 12:54:48

相關問題