J W*_*nia 3 subsonic powershell
我有一个包含Subsonic生成和增强代码的DLL来访问数据模型.实际上,它是原始程序集的合并DLL,Subsonic本身和一些其他引用的DLL到一个程序集中,称为"PowershellDataAccess.dll.但是,应该注意的是,我也尝试过这个引用每个程序集脚本以及也不起作用.
然后我尝试使用该程序集中的对象和方法.在这种情况下,我正在访问一个使用Subsonic加载一堆记录并从这些记录创建Lucene索引的类.
我遇到的问题是调用Subsonic方法从数据库中检索数据说它无法找到连接字符串.我将AppDomain指向适当的配置文件,该文件确实包含该连接字符串.
这是脚本.
$ScriptDir = Get-Location
[System.IO.Directory]::SetCurrentDirectory($ScriptDir)
[Reflection.Assembly]::LoadFrom("PowershellDataAccess.dll")
[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", "$ScriptDir\App.config")
$indexer = New-Object LuceneIndexingEngine.LuceneIndexGenerator
$indexer.GeneratePageTemplateIndex("PageTemplateIndex");
Run Code Online (Sandbox Code Playgroud)
我开始深入研究Subsonic本身,而Subsonic中的以下行正在寻找连接字符串并抛出异常:
ConfigurationManager.ConnectionStrings[connectionStringName]
Run Code Online (Sandbox Code Playgroud)
因此,出于好奇,我创建了一个具有单个类的程序集,该类具有单个属性,只运行该行以检索连接字符串名称.
我创建了一个调用该程序集的ps1 并命中该属性.那个原型可以很好地找到连接字符串.
任何人都知道为什么Subsonic的部分似乎看不到连接字符串?
您是否将System.Configuration程序集添加到PowerShell会话中?以下适用于我:
PS> gc .\app.config
<?xml version='1.0' encoding='utf-8'?>
<configuration>
<connectionStrings>
<clear />
<add name="Name"
providerName="System.Data.ProviderName"
connectionString="Valid Connection String;" />
</connectionStrings>
</configuration>
PS> [appdomain]::CurrentDomain.SetData("APP_CONFIG_FILE", "$home\app.config")
PS> Add-Type -AssemblyName System.Configuration
PS> [Configuration.ConfigurationManager]::ConnectionStrings['Name']
Name : Name
ConnectionString : Valid Connection String;
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4478 次 |
| 最近记录: |