Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A partir do .NET 7 e Visual Studio versão 17.4 de 2022, você pode acessar as propriedades de implantação do ClickOnce usando uma variável de ambiente.
O inicializador de aplicativo compartilha as propriedades de implantação de aplicativo do ClickOnce com o aplicativo que está sendo iniciado (.NET apenas). As propriedades são compartilhadas com o aplicativo usando variáveis de ambiente.
Os nomes das variáveis correspondem de perto às propriedades na classe .NET Framework<xref:System.Deployment.Application.ApplicationDeployment>. Os novos nomes de variáveis incluem um ClickOnce_ prefixo:
- ClickOnce_IsNetworkDeployed
- ClickOnce_ActivationUri
- ClickOnce_CurrentVersion
- ClickOnce_DataDirectory
- ClickOnce_IsFirstRun
- ClickOnce_TimeOfLastUpdateCheck
- ClickOnce_UpdatedApplicationFullName
- ClickOnce_UpdatedVersion
- ClickOnce_UpdateLocation
Além dessas alterações, uma nova propriedade está disponível que retorna a versão do inicializador de aplicativos:
ClickOnce_LauncherVersion
Um aplicativo .NET pode usar essas propriedades direta ou indiretamente.
Note
Usando esse método, você pode acessar as propriedades de implantação do aplicativo, mas .NET 7 não dá suporte ao equivalente dos métodos ApplicationDeployment.
Propriedades de acesso
O exemplo de código a seguir mostra como acessar duas propriedades diretamente ClickOnce_IsNetworkDeployed e ClickOnce_ActivationUri.
NameValueCollection nameValueTable = new NameValueCollection();
if (Environment.GetEnvironmentVariable("ClickOnce_IsNetworkDeployed")?.ToLower() == "true")
{
string value = Environment.GetEnvironmentVariable("ClickOnce_ActivationUri");
Uri activationUri = string.IsNullOrEmpty(value) ? null : new Uri(value);
if (activationUri != null)
{
nameValueTable = HttpUtility.ParseQueryString(activationUri.Query);
Console.WriteLine("Query string: " + activationUri.Query);
Console.ReadKey();
}
}
O uso indireto dessas propriedades requer a implementação de uma nova ApplicationDeployment classe no nível do aplicativo. Essa classe abstrai a leitura de variáveis de ambiente e fornece uma experiência semelhante à antiga classe .NET Framework.
Para obter uma implementação de exemplo dessa classe, consulte ApplicationDeployment.cs.
O snippet de código a seguir mostra como usar essa classe:
NameValueCollection nameValueTable = new NameValueCollection();
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
if (ad.ActivationUri != null)
{
nameValueTable = HttpUtility.ParseQueryString(ad.ActivationUri.Query);
}
}
Parâmetros de URL e ActivationUri
A partir do .NET 7, dotnet-mage oferece suporte a uma nova opção, -TrustURLParameters ou -tu. Essa opção permite que você defina o atributo de implantação necessário usando a ferramenta dotnet-mage. Essa alteração é uma melhoria em relação à antiga ferramenta Mage, que não oferecia suporte a essa funcionalidade e também exigia a modificação manual do manifesto da aplicação para adicionar o atributo trustURLParameters, <implantação install="true" trustURLParameters="true">.
Você precisa definir trustURLParameters como true para permitir que o aplicativo acesse os ActivationUri parâmetros e url.