1

だから私はこのコードを実行しています

    static readonly string[] PipelineAssemblies =
        {
            "Microsoft.Xna.Framework.Content.Pipeline.FBXImporter" + XnaVersion,
            "Microsoft.Xna.Framework.Content.Pipeline.XImporter" + XnaVersion,
            "Microsoft.Xna.Framework.Content.Pipeline.TextureImporter" + XnaVersion,
            "Microsoft.Xna.Framework.Content.Pipeline.EffectImporter" + XnaVersion,
            "Microsoft.Xna.Framework.Content.Pipeline.XImporter" + XnaVersion,
            "Microsoft.Xna.Framework.Content.Pipeline.AudioImporters" + XnaVersion,
            "Microsoft.Xna.Framework.Content.Pipeline.VideoImporters" + XnaVersion,

        };

間のより多くのコード.....

        // Register any custom importers or processors.
        foreach (string pipelineAssembly in PipelineAssemblies)
        {
            _buildProject.AddItem("Reference", pipelineAssembly);
        }

間のより多くのコード.....

        var execute = Task.Factory.StartNew(() => submission.ExecuteAsync(null, null), cancellationTokenSource.Token);
        var endBuild = execute.ContinueWith(ant => BuildManager.DefaultBuildManager.EndBuild());

        endBuild.Wait();

基本的に、コードを使用してコンテンツ プロジェクトをビルドしようとしています。これは、XImporter、AudioIMporters、および VideoImporters を削除するとうまく機能しますが、それらを使用すると次のエラーが発生します。

PInvokeStackImbalance が検出されました メッセージ: PInvoke 関数 'Microsoft.Xna.Framework.Content.Pipeline!Microsoft.Xna.Framework.Content.Pipeline.UnsafeNativeMethods+AudioHelper::GetFormatSize' の呼び出しにより、スタックのバランスが崩れました。これは、マネージド PInvoke 署名がアンマネージド ターゲット シグネチャと一致しないことが原因である可能性があります。PInvoke シグネチャの呼び出し規約とパラメーターがターゲットのアンマネージド シグネチャと一致することを確認します。

スタックトレース スタックトレース

私が試したこと:

  1. 安全でないコードをオンにする
  2. 大量のログを追加します (不思議に思っている場合に備えて、dll が見つかります)
  3. 別の wav ファイルと Mp3 ファイル (念のため)
  4. 同期的に構築する

更新: エラーは 1 つだけではありませんが、異なるメソッドを指すいくつかの同様のエラーが更新されます... 更新 2: この問題は、コンテンツ プロジェクトのビルドに使用しているターゲットに関連している可能性があります。

4

0 に答える 0