我可以在Windows 10上使用PowerShell访问winsqlite3.dll吗?

时间:2019-04-15 15:17:12

标签: powershell sqlite windows-10

由于Windows 10预先安装了winsqlite3.dll,所以我想知道Microsoft是否还提供cmdlet,以便可以在PowerShell中使用sqlite3。

如果没有,在PowerShell中使用sqlite3的最标准方法是什么?

1 个答案:

答案 0 :(得分:0)

您的意思是……

  

我可以使用PowerShell访问winsqlite3.dll

默认情况下,PowerShell作为对系统上所有.Net的访问以及您要在脚本中使用的任何DLL的访问,要求您使用Add-Type[reflection.assembly], {{3 }}或.Net Import-Module命名空间。

您几乎可以对系统上的所有DLL进行此操作,无论它在哪里。但是我还没有尝试过您要问的洋娃娃。

# Example(s):

Import-module("C:\temp\MathFunctions.dll")
[MathFunctions.MultiClass]::Multiply(10, 2)


Import-Module "C:\Program Files (x86)\Microsoft Office 2013\LyncSDK\Assemblies\Desktop\Microsoft.Lync.Controls.Dll"
Import-Module "C:\Program Files (x86)\Microsoft Office 2013\LyncSDK\Assemblies\Desktop\Microsoft.Lync.Model.Dll"

另请参阅: DllImport

Importing a PowerShell Module

更新 winsqlite3将无法使用上述任何方法加载。我只是尝试了每个。

# Errors --- 

# Using either C:\Windows\SysWOW64\winsqlite3.dll or C:\Windows\System32\winsqlite3.dll

Exception             : System.BadImageFormatException: Could not load file or assembly 'file:///C:\Windows\SysWOW64\winsqlite3.dll' or one of its dependencies. 
                        The module was expected to contain an assembly manifest.

Exception             : System.IO.FileLoadException: Could not load file or assembly 'C:\\Windows\\SysWOW64\\winsqlite3.dll' or one of its dependencies. The 
                        given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)

Exception             : System.Management.Automation.MethodInvocationException: Exception calling "LoadWithPartialName" with "1" argument(s): "The given assembly 
                        name or codebase was invalid. (Exception from HRESULT: 0x80131047)" ---> System.IO.FileLoadException: The given assembly name or codebase 
                        was invalid. (Exception from HRESULT: 0x80131047)

要点: 即使使用PowerShell P/Invoke Walkthrough,它也显示为不受支持

更新 基于以下内容,甚至考虑使用它可能也不是明智之举。

  

JetBrains dotPeek

     

定义

     

命名空间:Microsoft.Data.Sqlite.Internal
  程序集:Microsoft.Data.Sqlite.dll

     

配置Microsoft.Data.Sqlite以使用winsqlite3.dll。这是一个   Windows中随附的SQLite版本

     

1。在与SQLite进行任何其他交互之前,必须先调用此方法。此API可能会在将来的版本中更改或删除。

另请参阅PowerShell GitHub案例: Sqlite​Engine Class