Microsoft.Office.Interop.Word.DocumentインスタンスのSaveFormatプロパティにアクセスしようとしています(Documentはインターフェイスであるため、技術的にはDocumentClassインスタンスだと思います)。SaveFormatを読み込もうとすると、Wordがかなり不自然にクラッシュします。アクセスをtry..catchブロックでラップすることも適切ではありません。制御は、私が再キャッチするための例外をスローするのではなく、アプリを終了することを決定する別のアセンブリに渡されています。
これは、次のように、単にコードでプロパティを読み取っている場合でも発生します。
WdSaveFormat saveFormat = this.document.SaveFormat; // document is a Microsoft.Office.Interop.Word.Document
または、デバッガーを使用してWatchのプロパティにアクセスしたとき。
ドキュメントインスタンス自体は問題ないと思います。他のプロパティ(パスなど)はに反映できます。ドキュメントオブジェクトでクイックウォッチを実行すると、赤旗を立てる「評価できませんでした」、「null」などの値ではなく、正当に見える値が生成されます。クイックウォッチウィンドウで1行ずつ下にスクロールでき、SaveFormatに到達すると爆発します。
クラッシュは、Word2007とWord2010で発生します。
PIAタイプを埋め込むことと、埋め込まないことの両方を試しました(参照プロパティの「EmbedInteropTypes」フラグ)
2010バージョンの代わりにWord2007PIAを参照してみました。同じ動作。
プロジェクトでは.NET4.0をターゲットにしていますが、3.5もターゲットにしています。変化なし。
何か案は?私のコンプをデフェネストレーションしようとしています:)