Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
bf96002e
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
bf96002e
编写于
4月 21, 2018
作者:
S
Sam Harwell
提交者:
GitHub
4月 21, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #26269 from sharwell/defer-initialization
Defer loading of SQLite binaries until they will be used
上级
3e3cef1c
228d951e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
8 addition
and
14 deletion
+8
-14
src/VisualStudio/CSharp/Test/PersistentStorage/SQLitePersistentStorageTests.cs
...rp/Test/PersistentStorage/SQLitePersistentStorageTests.cs
+0
-7
src/Workspaces/Core/Desktop/Workspace/SQLite/SQLitePersistentStorageService.cs
...esktop/Workspace/SQLite/SQLitePersistentStorageService.cs
+8
-1
src/Workspaces/Core/Desktop/Workspace/Storage/PersistenceStorageServiceFactory.cs
...top/Workspace/Storage/PersistenceStorageServiceFactory.cs
+0
-6
未找到文件。
src/VisualStudio/CSharp/Test/PersistentStorage/SQLitePersistentStorageTests.cs
浏览文件 @
bf96002e
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using
System
;
using
System.Linq
;
using
System.Threading.Tasks
;
using
Microsoft.CodeAnalysis.Host
;
using
Microsoft.CodeAnalysis.SolutionSize
;
using
Microsoft.CodeAnalysis.SQLite
;
...
...
@@ -17,11 +15,6 @@ namespace Microsoft.CodeAnalysis.UnitTests.WorkspaceServices
/// </remarks>
public
class
SQLitePersistentStorageTests
:
AbstractPersistentStorageTests
{
static
SQLitePersistentStorageTests
()
{
Assert
.
True
(
SQLitePersistentStorageService
.
TryInitializeLibraries
());
}
internal
override
IPersistentStorageService
GetStorageService
(
IPersistentStorageLocationService
locationService
,
ISolutionSizeTracker
solutionSizeTracker
,
IPersistentStorageFaultInjector
faultInjector
)
=>
new
SQLitePersistentStorageService
(
_persistentEnabledOptionService
,
locationService
,
solutionSizeTracker
,
faultInjector
);
...
...
src/Workspaces/Core/Desktop/Workspace/SQLite/SQLitePersistentStorageService.cs
浏览文件 @
bf96002e
...
...
@@ -23,7 +23,7 @@ internal partial class SQLitePersistentStorageService : AbstractPersistentStorag
[
DllImport
(
"kernel32.dll"
)]
private
static
extern
IntPtr
LoadLibrary
(
string
dllToLoad
);
internal
static
bool
TryInitializeLibraries
()
=>
s_initialized
.
Value
;
private
static
bool
TryInitializeLibraries
()
=>
s_initialized
.
Value
;
private
static
readonly
Lazy
<
bool
>
s_initialized
=
new
Lazy
<
bool
>(()
=>
TryInitializeLibrariesLazy
());
...
...
@@ -88,6 +88,13 @@ protected override string GetDatabaseFilePath(string workingFolderPath)
protected
override
bool
TryOpenDatabase
(
Solution
solution
,
string
workingFolderPath
,
string
databaseFilePath
,
out
IPersistentStorage
storage
)
{
if
(!
TryInitializeLibraries
())
{
// SQLite is not supported on the current platform
storage
=
null
;
return
false
;
}
// try to get db ownership lock. if someone else already has the lock. it will throw
var
dbOwnershipLock
=
TryGetDatabaseOwnership
(
databaseFilePath
);
if
(
dbOwnershipLock
==
null
)
...
...
src/Workspaces/Core/Desktop/Workspace/Storage/PersistenceStorageServiceFactory.cs
浏览文件 @
bf96002e
...
...
@@ -28,13 +28,7 @@ public IWorkspaceService CreateService(HostWorkspaceServices workspaceServices)
switch
(
database
)
{
case
StorageDatabase
.
SQLite
:
if
(!
SQLitePersistentStorageService
.
TryInitializeLibraries
())
{
break
;
}
var
locationService
=
workspaceServices
.
GetService
<
IPersistentStorageLocationService
>();
if
(
locationService
!=
null
)
{
return
new
SQLitePersistentStorageService
(
optionService
,
locationService
,
_solutionSizeTracker
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录