Package.Dispose(Boolean) Method


Flushes and saves the content of all parts and relationships, closes the package, and releases all resources.

 virtual void Dispose(bool disposing);
protected virtual void Dispose (bool disposing);
abstract member Dispose : bool -> unit
override this.Dispose : bool -> unit
Protected Overridable Sub Dispose (disposing As Boolean)



true to release both managed and unmanaged resources; false to release only unmanaged resources.


To make sure that all changes are correctly saved, Dispose also finalizes, flushes, and closes all parts and relationships that are contained in the package.

For the Package class, Dispose and Close perform the same operation - there is no reason to call Dispose if you call Close, or vice-versa.

Close and Dispose internally call Flush.

Derived classes that allocate and manage non-memory resources should override this method to release resources when Dispose is called. Derived-class overrides should also call Flush and the base-class Dispose method to make sure that base-class cleanup is always performed.


The using statement (different from the using namespace directive) is the recommended way to Close and Dispose a package. Writing a Package Sample shows how to close and dispose a package by using the using statement.

Applies to

See also