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

问题描述 投票:0回答:1

由于Windows 10预装了winsqlite3.dll,我想知道微软是否也提供cmdlet,以便我可以在PowerShell中使用sqlite3。

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

powershell sqlite windows-10
1个回答
0
投票

你是什​​么意思 …

我可以使用PowerShell访问winsqlite3.dll吗?

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

您可以为系统中的几乎任何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"

另见:Importing a PowerShell Module

PowerShell P/Invoke Walkthrough

更新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)

注意:即使使用JetBrains dotPeek,它也显示为不受支持

更新根据以下内容,即使考虑使用它也可能不明智。

Sqlite​Engine Class

定义

命名空间:Microsoft.Data.Sqlite.Internal 大会:Microsoft.Data.Sqlite.dll

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

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

另请参阅PowerShell GitHub案例:Question: How to import SQLite library #6050

© www.soinside.com 2019 - 2024. All rights reserved.