我目前正在尝试使用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) 我目前正在编写一个简单的WPF 3.5应用程序,它利用SharePoint COM调用SharePoint站点并生成组和用户信息.由于此过程需要一段时间,因此我希望在生成组时显示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)