我已在 Windows 7 64 位计算机上安装了 Visual Studio 2012。我正在尝试安装 SQL Server Express LocalDB,但当安装程序尝试启动服务时出现错误。这是确切的错误消息:
服务“SQL Server VSS 编写器”无法启动。验证您有足够的权限来启动系统服务。
我以管理员身份登录到机器。我已经验证服务中的写入器正在运行并且设置为自动。
据我所知,我的机器上没有安装 SQL Server。
我很困惑。有人有主意吗?
另外,当我尝试在服务中启动 SQL Writer 时,出现以下错误:
Windows 无法在本地计算机上启动 SQL Server VSS Writer 服务。
错误1053:服务器没有及时响应启动或控制请求。
我使用 Azure DevOps 进行 .NET Core 应用程序的 CI 流程。我还使用基于 localDb SQL 数据库的集成测试。当我运行 ci piplene 时,我惊讶地发现所有测试都通过了。
{
"UseInMemoryDatabase": false, // Application.IntegrationTests are not designed to work with InMemory database.
"DeveloperPathSqlConnectionString": "Server=(localdb)\\mssqllocaldb;Database=DeveloperPathTestDb;Trusted_Connection=True;MultipleActiveResultSets=true;",
"Key": {
"Type": "Development"
},
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
Run Code Online (Sandbox Code Playgroud)
Azure DevOps 是否已包含 localdb?
被SqlDependency支持的SqlLocalDb?如果是,如何启用它?
我有一个SQL数据项目,它是从我的生产数据库的模式创建的.它将所有存储过程引入到项目中,并且我尝试将生成的脚本部署到localdb以进行脱机开发.
问题是,似乎SQL数据项目正在尝试验证它生成的SQL脚本,但它遇到了包含字符串的第一个实例$(.
例1
INSERT INTO mytable (text) VALUES ('$(')
这会导致错误
$('正在解析时遇到了不正确的语法.
例2
INSERT INTO mytable (text) VALUES ('$(this')
这会导致错误
$(正在解析此'时遇到了错误的语法.
它似乎是SQL数据项目解析验证中的一个错误,即使脚本在SQL Management Studio中正常运行,也会阻止部署成功.
更新
我尝试了一些想法,似乎问题是在SQL数据项目解析字符串和遭遇时$(.此外,$(在字符串中的所有内容都会被错误捕获,直到下一个单引号实例(无论是转义单引号还是字符串单引号的结尾)
我有一个使用Entity Framework的MVC3应用程序.我大约一年没有使用过这个应用程序.最近,我在一台新PC上打开它并尝试在调试模式下运行并在调试中点击以下异常/堆栈跟踪.主要异常似乎是"无法将文件附加为数据库"和"基础提供程序在打开时失败".我在堆栈溢出时搜索了这些错误,我发现的答案似乎与这种情况不符.例如,"无法将文件附加为数据库"的答案之一表明旧版本的db可能位于本地数据库上,但是当我浏览到localdb时,我在本地数据库中看不到任何数据库在视觉工作室.
我正在寻找有关解决此问题的调查问题的指导.有什么建议?
它失败的实际代码是:
var currentHunt = (from ph in this.repo.GetAllPuzzleHunts()
orderby ph.PuzzleHuntId descending
select ph).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
这是Web应用程序首次尝试通过Entity Framework从db获取数据.
FWIW这台机器有Entity Framework 6.0,我正在使用Visual Studio 2012.
异常/堆栈跟踪如下:
System.Data.DataException was unhandled by user code
HResult=-2146233087
Message=An exception occurred while initializing the database. See the InnerException for details.
Source=EntityFramework
StackTrace:
at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action)
at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization()
at System.Data.Entity.Internal.LazyInternalContext.<InitializeDatabase>b__4(InternalContext c)
at System.Data.Entity.Internal.RetryAction`1.PerformAction(TInput input)
at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action`1 action)
at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()
at System.Data.Entity.Internal.InternalContext.Initialize()
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()
at System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext()
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source) …Run Code Online (Sandbox Code Playgroud) entity-framework visual-studio-debugging asp.net-mvc-3 localdb
我最近有PC故障并重新安装了Windows操作系统和我的所有开发软件.重新安装后,我的Visual Studio 2012数据库项目似乎工作方式不同,我无法弄清楚.当我按F5或CTRL + F5时,我的数据库项目不再"自动部署"到LocalDB.我使用VS2012 Professional版本和默认安装设置.
在我的旧安装中,如果我在项目中更改了列名并按下了F5,则LocalDB中的表将立即更新,而不会执行任何类型的发布操作.Visual Studio输出窗口还将指示正在应用更改.这种"自动部署"不再发生,我不得不求助于右键单击项目并点击发布,这有效,但不方便.
如何重新启用此"自动部署"功能?
到目前为止,我尝试过:
我怀疑此功能可能依赖于我在旧安装中使用的其他软件或补丁.
deployment database-project visual-studio localdb visual-studio-2019
我正在尝试使用Wix在LocalDB中创建数据库,但我不确定要使用的连接字符串(或者甚至可能).目前我已经完成了一些谷歌搜索,发现在Wix 3.6中,不支持LocalDB的ODBC驱动程序.但是,我使用的是Wix 3.8.
我目前有我的Wix捆绑安装LocalDB,然后它运行我自己的自定义msi来安装我所需的所有文件,然后它运行第二个自定义msi,它应该创建数据库和所有必需的表.第二个自定义msi是它失败的地方.
我尝试了以下方法,但都没有奏效:
<sql:SqlDatabase Id="SqlDatabase" Database="DbName" Server="localdb"
Instance="V11.0" CreateOnInstall="yes" DropOnUninstall="yes">
Run Code Online (Sandbox Code Playgroud)
和
<sql:SqlDatabase Id="SqlDatabase" Database="DbName" Server="(localdb)\V11.0"
CreateOnInstall="yes" DropOnUninstall="yes">
Run Code Online (Sandbox Code Playgroud)
我正在引用WixSqlExtension.dll,我已将命名空间包含在我的wxs文件的顶部.
有没有人在使用Wix的LocalDB上取得任何成功?
在我的机器上MSSQLLocalDB被破坏了:
PS C:\WINDOWS\system32> sqllocaldb i
MSSQLLocalDB
Projects
ProjectsV12
v11.0
PS C:\WINDOWS\system32> sqllocaldb i mssqllocaldb
The required LocalDB version "0.0" is not installed.
PS C:\WINDOWS\system32>
Run Code Online (Sandbox Code Playgroud)
有什么我可以做的不能重新安装Visual Studio/Sql Server/Sql Express来修复它吗?
我应该提一下,依赖于LocalDb的任何Visual Studio功能都不起作用,例如CodeMaps
此调用DacServices.Deploy一直适用于SQL Server LocalDB 2014,但在安装SQL Server LocalDB 2016时失败:
string dacConnectionString = $"Server=(localdb)\\mssqllocaldb; Integrated Security=true; database={DatabaseName}";
var dacServices = new DacServices(dacConnectionString);
dacServices.Message += (sender, args) => Console.WriteLine($"{args.Message.Prefix}: {args.Message.Message}"); // Log dacpac deploy messages
dacServices.Deploy(LoadDacPac(), DatabaseName, true, new DacDeployOptions()
{
BlockOnPossibleDataLoss = false
});
Run Code Online (Sandbox Code Playgroud)
DacServices.DeployLocalDB 2016 抛出的异常是:
Microsoft.SqlServer.Dac.DacServicesException was unhandled by user code
HResult=-2146233088
Message=Could not deploy package.
Source=Microsoft.SqlServer.Dac
StackTrace:
at Microsoft.SqlServer.Dac.DeployOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)
at Microsoft.SqlServer.Dac.OperationExtension.Execute(IOperation operation, DacLoggingContext loggingContext, CancellationToken cancellationToken)
at Microsoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageSource, Boolean isDacpac, String targetDatabaseName, DacDeployOptions options, CancellationToken …Run Code Online (Sandbox Code Playgroud) 我用.mdf数据库文件(版本13.00.4001)创建了一个应用程序。
如果我在编译应用程序的同一台计算机上运行该应用程序,那么一切都会很好。但是,如果我尝试在安装了SQL Server LocalDb 2016的第二台计算机上运行它,则它不起作用,并说无法在计算机上找到SQL Server。
有什么问题?我不明白为什么。
如果我尝试在装有SQL Server 2014 LocalDB和2016的PC上运行应用程序,则日志显示
无法打开,因为它是852版。此服务器支持782版和更早版本。不支持降级路径
真的我不明白为什么会有所有这些问题。
用于建立连接字符串的代码:
"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" +
Directory.GetCurrentDirectory() +
@"\Dati.mdf; Integrated Security=True"
Run Code Online (Sandbox Code Playgroud) localdb ×10
c# ×2
.net ×1
azure ×1
azure-devops ×1
dac ×1
deployment ×1
escaping ×1
sql ×1
sql-server ×1
wix ×1