だから私はこのコードを実行しています
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 シグネチャの呼び出し規約とパラメーターがターゲットのアンマネージド シグネチャと一致することを確認します。
スタックトレース
私が試したこと:
- 安全でないコードをオンにする
- 大量のログを追加します (不思議に思っている場合に備えて、dll が見つかります)
- 別の wav ファイルと Mp3 ファイル (念のため)
- 同期的に構築する
更新: エラーは 1 つだけではありませんが、異なるメソッドを指すいくつかの同様のエラーが更新されます... 更新 2: この問題は、コンテンツ プロジェクトのビルドに使用しているターゲットに関連している可能性があります。