10

自動ビルドスクリプトを設定しようとしているMonotouchiPadアプリケーションがあります。mdtoolを使おうとしていますが、壁にぶつかったようです。MonoDevelop GUIを使用してソリューションをビルドすると、正常にビルドされます。ただし、ソリューションをクリーンアップし、mdtoolを使用してビルドすると、不明なファイルのnull参照例外に関する例外が発生します。

私はここ数時間グーグルで回っています。Stack Overflowでいくつかのリードを見つけたと思いましたが、それらはすべて異なる状況のようです。UIでのビルドの成功と、CLIでの失敗についてはあまりありません。

ここにいくつかの出力があります:

     Performing main compilation...
        Updating CodeBehind files
ERROR [2011-06-03 11:27:52Z]: Error generating code for xib file '/Users/Me/Documents/Code/MyApp/MainWindow.xib'
System.NullReferenceException: Object reference not set to an instance of an object at MonoDevelop.DesignerSupport.CodeBehindWriter.<get_OpenFiles>m__21 () [0x00000] in <filename unknown>:0 
at MonoDevelop.Ide.DispatchService.GuiSyncDispatch (MonoDevelop.Ide.MessageHandler cb) [0x00000] in <filename unknown>:0 
at MonoDevelop.DesignerSupport.CodeBehindWriter.get_OpenFiles () [0x00000] in <filename unknown>:0 
at MonoDevelop.DesignerSupport.CodeBehindWriter.Write (System.CodeDom.CodeCompileUnit ccu, FilePath path) [0x00000] in <filename unknown>:0 
at MonoDevelop.MacDev.XibCodeBehind.GenerateDesignerCode (MonoDevelop.DesignerSupport.CodeBehindWriter writer, MonoDevelop.Projects.ProjectFile xibFile, MonoDevelop.Projects.ProjectFile designerFile) [0x00000] in <filename unknown>:0 
at MonoDevelop.MacDev.MacBuildUtilities.UpdateCodeBehind (IProgressMonitor monitor, MonoDevelop.MacDev.XibCodeBehind generator, IEnumerable`1 items) [0x00000] in <filename unknown>:0 

私が実行しているコマンドは次のようになります。

/Applications/MonoDevelop.app/Contents/MacOS/mdtool -v build "--configuration:Release|iPhone" "/Users/Me/Documents/Code/MyApp/MyApp.sln" 

そしてそれを徹底的に保つために、ここに私のバージョンがあります:

    OS X: 10.6.7
    XCode: 3.2.6
    iOS SDK: 4.3
    Mono: 2.10.2
    MonoDevelop: 2.4.2
    MonoTouch: 4.0.3

更新(2011年6月7日):

別の方法として、私はやってみmdtool generate-makefilesました。それは人が期待するすべてのものを作成し、./configure適切に実行されましたが、makeかなり惨めに失敗しました。誰かが何か考えを持っているなら、私はこの問題を解決したいと思います。

4

1 に答える 1

5

これはバグですが、デザイナーコードは、xibまたはプロジェクト(csproj)ファイルがデザイナーファイルよりも新しい場合にのみ生成されます。IDE内で一度ビルドするか、デザイナーファイルに「タッチ」すると、mdtoolが再び機能します。

于 2011-06-21T21:15:30.527 に答える