我正在设置一些脚本,以便我们团队中的开发人员能够轻松地设置本地开发环境。除了最后一步,它安装了Sitecore数据库和Web根目录,我已经安装了所有安装脚本。这是脚本:
#define parameters
$prefix = "dev"
$PSScriptRoot = "."
$XConnectCollectionService = "$prefix.xconnect"
$sitecoreSiteName = "$prefix.sc"
$SolrUrl = "https://solr:8983/solr"
$SolrRoot = "C:\solr\solr-6.6.2"
$SolrService = "solr-6.6.2"
$SqlServer = ".\SQLEXPRESS"
$SqlAdminUser = "sa"
$SqlAdminPassword="password"
#install sitecore instance
$sitecoreParams = @{
Path = "$PSScriptRoot\Packages\sitecore-XP0.json"
Package = "$PSScriptRoot\Packages\Sitecore 9.0.1 rev. 171219 (OnPrem)_single.scwdp.zip"
LicenseFile = "$PSScriptRoot\Packages\license.xml"
SqlDbPrefix = $prefix
SqlServer = $SqlServer
SqlAdminUser = $SqlAdminUser
SqlAdminPassword = $SqlAdminPassword
SolrCorePrefix = $prefix
SolrUrl = $SolrUrl
XConnectCert = $certParams.CertificateName
Sitename = $sitecoreSiteName
XConnectCollectionService = "https://$XConnectCollectionService" }
Install-SitecoreConfiguration $sitecoreParams
这是我运行脚本时遇到的错误。立即发生。
Install-SitecoreConfiguration:无法验证参数'Path'的参数。 “Test-Path $ _ -Type Leaf” 值为“System.Collections.Hashtable”的参数的验证脚本未返回True结果。 确定验证脚本失败的原因,然后再次尝试该命令。 在C:\ setup \ sitecore-dev-install-sc.ps1:18 char:31 + Install-SitecoreConfiguration $ sitecoreParams + ~~~~~~~~~~~~~~~ + CategoryInfo:InvalidData:(:) [Install-SitecoreConfiguration],ParameterBindingValidationException + FullyQualifiedErrorId:ParameterArgumentValidationError,Install-SitecoreConfiguration
安装了所有先决条件,并且使用相同变量的所有其他脚本运行正常,例如xconnect install,这非常相似。 JSON配置文件来自Sitecore网站的XP Single软件包下载。有什么想法会导致这种情况吗?关于如何进一步调试的任何想法?
答案 0 :(得分:0)
PowerShell中的变量是使用$
声明和引用的,例如您脚本中的$sitecoreParams
是hashtable
变量。
调用函数时,您可以使用散列表来构建函数的所有参数,然后将单个变量传递给函数。这称为 Splatting 。 Splatting分解哈希表中的每个键/值,并作为匹配的参数/值传递给函数
语法略有不同:
# This passes a single hashtable parameter
Install-SitecoreConfiguration $sitecoreParams
#This 'splats' the hashtable passing each key/value as a parameter
Install-SitecoreConfiguration @sitecoreParams
在进行展示时,变量的$
将替换为@
。
在您的脚本中,您将$sitecoreParams
作为第一个参数传递给Install-SitecoreConfiguration
。该函数假定第一个参数为Path
,因此尝试将其验证为真实文件路径。
修复方法是传递@sitecoreParams
,以便将哈希表映射到函数中。
您可以通过以下方式找到有关Splatting的更多信息:
Get-Help about_Splatting -ShowWindow
答案 1 :(得分:0)
请安装以下软件,然后尝试。安装软件后,需要重新启动。
Microsoft ODBC Driver 13 for SQL Server
Microsoft Command Line Utilities 13 for SQL Server
注意:如果由于版本可用性较高而无法安装用于SQL Server的Microsoft ODBC驱动程序13 ,请继续安装用于SQL Server的Microsoft命令行实用工具13 >
希望这会对您有所帮助。