所以,我有一个Windows服务,可以在一台服务器上安装多个实例.安装程序需要能够升级单个实例.安装程序使用Instance Transforms,但我不确定如何按照我的意愿进行主要升级.
为了进行重大升级,我的理解是我应该更改产品代码,因此实例以这种形式定义:
<Instance ProductCode="*"
UpgradeCode="{SOMEGUID}"
ProductName="Instance 1"
Id="Instance1"/>
Run Code Online (Sandbox Code Playgroud)
可以启动msi以通过以下方式安装新实例:
msiexec.exe /i "installer.msi" TRANSFORMS=:Instance1 MSINEWINSTANCE=1
Run Code Online (Sandbox Code Playgroud)
但是,经过多次搜索后,我发现在特定实例上运行升级的唯一方法是这种格式:
msiexec.exe /i "installer.msi" /n {PRODUCTCODE} REINSTALL=ALL REINSTALLMODE=vamus
Run Code Online (Sandbox Code Playgroud)
这个问题是如果产品代码是自动生成主要升级,那么我不知道它是什么,所以我不能传递给命令参数.
有没有办法使用Instance的UpgradeCode或InstanceID或ProductCode启动升级?因为这两者都会保持静止.或者,我可以在没有参数的情况下启动msi,在UI对话框中选择现有实例(通过检查注册表),并设置适当的属性以强制msi进入该实例的升级模式吗?
var client = new AmazonCognitoIdentityProviderClient("MYKEY", "MYSECRET", RegionEndpoint.USEast1);
var request = new AdminGetUserRequest();
request.Username = "USERNAME";
request.UserPoolId = "POOLID";
var user = client.AdminGetUserAsync(request).Result; Run Code Online (Sandbox Code Playgroud)
密钥/秘密正在以具有管理员访问权限的用户身份进行身份验证。为了更好地衡量,我还为其提供了 AmazonCognitoPowerUser 策略。
区域端点是正确的,并且与我的用户池所在的区域端点相同。用户池 ID 是正确的。用户池 ID 的第一部分与区域匹配。
我不知道还有什么地方可能出问题。有任何想法吗?
2019 年 8 月 2 日更新
手动 CLI 命令:
PM> aws cognito-idp list-user-pools --region us-east-1 --max-results 10
{
"UserPools": []
}Run Code Online (Sandbox Code Playgroud)
区域是正确的,所以权限肯定有问题。我可以尝试对池进行调整吗?或者我可能需要添加给用户的其他策略?