Application.UpdatePackage Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets or sets a Boolean that indicates whether packages can be updated when an updated version is found.
public:
property bool UpdatePackage { bool get(); void set(bool value); };
public bool UpdatePackage { get; set; }
member this.UpdatePackage : bool with get, set
Public Property UpdatePackage As Boolean
Property Value
true if packages can be updated when an updated version is found; otherwise, false. The default value is false.
Examples
The following code example shows how to enable and disable updates. It sets the UpdatePackage to true
, prints the value, resets the value of the property to false
, and prints out the value again.
class ApplicationTests
{
static void Main(string[] args)
{
Application app = new Application();
Boolean updatePkg = true;
app.UpdatePackage = updatePkg;
Console.WriteLine(app.UpdatePackage);
updatePkg = false;
app.UpdatePackage = updatePkg;
Console.WriteLine(app.UpdatePackage);
}
}
Class ApplicationTests
Shared Sub Main(ByVal args() As String)
Dim app As Application = New Application()
Dim updatePkg As Boolean = True
app.UpdatePackage = updatePkg
Console.WriteLine(app.UpdatePackage)
updatePkg = False
app.UpdatePackage = updatePkg
Console.WriteLine(app.UpdatePackage)
End Sub
End Class
Sample Output:
True
False
Remarks
If extensible objects, such as tasks, Foreach
enumerators, log providers, and connection managers are updated, older packages can be updated at load time. For that to occur, the following two properties must be set to true
in the application object before loading: UpdatePackage, and UpdateObjects.
Each extensible object must also implement its CanUpdate
property.
The runtime tries to load the old package, and if it finds an older object, attempts an update. The runtime first enumerates all the extensible objects it contains, excluding the Pipeline
, which is treated separately and locally. For each object, the runtime then calls CanUpdate
on the new objects, passing the ID of the old object. If the new object can update the old one, the old object is passed to the new one by using its Update
method, and its XML is changed in place. By default, all extensible objects implement CanUpdate
to return false
; therefore, the XML that is passed is not updated.