小编pst*_*ker的帖子

使用PowerShell更新JSON文件

我目前正在尝试使用VSTS设置一个持续集成系统,并遇到了一些障碍.作为发布过程的一部分,我需要根据环境更新JSON文件中的特定对象值.我可以使用的唯一工具可以在VSTS环境中完成,这是PowerShell.

我已经做了很多研究,但却无法弄清楚这是怎么做到的.我发现这个问题和答案在这里堆栈溢出" 我如何使用PowerShell的更新JSON文件,但在执行中的答案提供的脚本显着改变的JSON文件的结构,并增加了相当多的什么样子PowerShell中的元数据".

理想情况下,我想获取一个已部署的现有JSON文件,并在下面的示例JSON中更新connectionString属性的值.

{
    "policies": {
         "Framework.DataContext": {
         "connectionString": "Server=ServerName;Database=DateBaseName;Integrated Security=sspi;"
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有人对如何做到这一点有任何建议?到目前为止,我已经尝试运行以下脚本但它抛出了"在此对象上找不到属性'connectionString'.验证该属性是否存在且可以设置." 例外.我已经验证对象遍历是正确的,并且connectionString属性存在.

$pathToJson = "D:\Path\To\JSON\file.json"
$a = Get-Content $pathToJson | ConvertFrom-Json
$a.policies.'Framework.DataContext'.connectionString = "Server=ServerName;Database=DateBaseName;Integrated Security=sspi;"
$a | ConvertTo-Json | set-content $pathToJson
Run Code Online (Sandbox Code Playgroud)

file.json的全部内容如下

{
"log": {
    "level": 0,
    "file": "c:\\temp\\simport.log",
    "formats": {
        "error": null,
        "start": null,
        "requestBegin": null,
        "requestWork": "",
        "requestError": null,
        "requestEnd": null,
        "stop": null
    },
    "eventLog": {
        "name": "Application"
    }
},

"diagnostic": {
    "stackTrace": false
},

"api": {
    "simport": true
},

"roles": { …
Run Code Online (Sandbox Code Playgroud)

powershell json azure-devops azure-pipelines

13
推荐指数
1
解决办法
2万
查看次数

在WPF中使用BackgroundWorker更新UI

我目前正在编写一个简单的WPF 3.5应用程序,它利用SharePoint COM调用SharePoint站点并生成组和用户信息.由于此过程需要一段时间,因此我希望在生成组时显示ProgressBar.期望的过程如下:

  1. 用户输入url并单击按钮以获取站点数据.
  2. ProgressBar开始动画
  3. 生成组并将名称添加到ListView
  4. 完成后,ProgressBar动画结束

我遇到的问题是UI永远不会更新.ProgressBar或ListView都不做任何更改.如果有人有任何想法来帮助下面的代码,将不胜感激.

private void GetGroupsAndUsersButton_Click(object sender, RoutedEventArgs e)
{
    siteUrl = "";

    if (SiteURLTextBox.Text.Length > 0)
    {
        FetchDataProgressBar.IsIndeterminate = true;

        mWorker = new BackgroundWorker();
        mWorker.DoWork += new DoWorkEventHandler(worker_DoWork);
        mWorker.WorkerSupportsCancellation = true;
        mWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
        mWorker.RunWorkerAsync();
    }
    else
    {
        System.Windows.MessageBox.Show("Please enter a URL for the SharePoint site you wish to retrieve data");
    }
}

private void worker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
    siteUrl = SiteURLTextBox.Text;
    GroupListView.ItemsSource = null;

    try
    {
        using (SPSite site = new …
Run Code Online (Sandbox Code Playgroud)

c# wpf sharepoint backgroundworker

8
推荐指数
1
解决办法
1万
查看次数