参照アカウント方式では、参照された側が死活管理を行っています。
参照する際に、「参照します」と通知し、参照が終了した際に「参照が終わる」と送ります。参照カウントが0になったときに終了処理を実行します。「オブジェクトを参照する」という通知は、.NETにより自動的に行われます。
参照を減らすという通知がMarshal.ReleaseComObjectです。
Application app = null;
try
{
app = new Application();
app.DisplayAlerts = false;
Workbook book = null;
try
{
book = app.Workbooks.Add();
((Range)(Worksheet)book.Worksheets[1]).Cells[1, 1].Value =
book.SaveAs(Filename: @"c:¥temp¥abc.xlsx");
book.Close(SaveChanges: false);
app.Quit();
MessageBox.Show("finish");
}
finally
{
if (book != null) Marshal.ReleaseComObject(book);
}
}
finally
{
if ( app != null )Marshal.ReleaseComObject(app);
}