Application.UpdatePackage Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um Boolean que indica se os pacotes podem ser atualizados quando uma versão atualizada é encontrada.
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
Valor da propriedade
true se os pacotes puderem ser atualizados quando uma versão atualizada for encontrada; caso contrário, false. O valor padrão é false.
Exemplos
O exemplo de código a seguir mostra como habilitar e desabilitar atualizações. Ele define o UpdatePackage valor para true
, imprime o valor, redefine o valor da propriedade false
e imprime o valor novamente.
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
Saída de exemplo:
True
False
Comentários
Se objetos extensíveis, como tarefas, Foreach
enumeradores, provedores de log e gerenciadores de conexões forem atualizados, os pacotes mais antigos poderão ser atualizados em tempo de carga. Para que isso ocorra, as duas propriedades a true
seguir devem ser definidas no objeto do aplicativo antes de carregar: UpdatePackagee UpdateObjects.
Cada objeto extensível também deve implementar sua CanUpdate
propriedade.
O runtime tenta carregar o pacote antigo e, se encontrar um objeto mais antigo, tenta uma atualização. O runtime enumera primeiro todos os objetos extensíveis que ele contém, excluindo o Pipeline
, que é tratado separadamente e localmente. Para cada objeto, o runtime então chama CanUpdate
os novos objetos, passando a ID do objeto antigo. Se o novo objeto puder atualizar o antigo, o objeto antigo será passado para o novo usando seu Update
método e seu XML será alterado no local. Por padrão, todos os objetos extensíveis são implementados CanUpdate
para retornar false
; portanto, o XML que é passado não é atualizado.