win系统安装sql server报错,已经安装了Visual C++ 2017 Redistributable,也是以系统管理员身份运行,找不到问题
win系统安装sql server报错,已经安装了Visual C++ 2017 Redistributable,也是以系统管理员身份运行
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 专家-皆知 2024-03-28 21:50关注
引自免费微信小程序:皆我百晓生
在解决Windows安装SQL Server 2019过程中遇到的问题时,可能需要遵循以下几个步骤和代码示例:
解决问题步骤一:检查VS redistributable
- 确保已经安装 Visual C++ 2017 Redistributable。可以在命令提示符或控制面板上找到它,通常位置为"Program Files (x86)\Microsoft Visual Studio\Shared Debugger"。
- 确认路径是否正确 在VS的安装目录中,确保已包含了名为
VC_redist_x64.exe
的文件。如果不是,请手动下载并安装此文件,然后在安装路径下搜索该文件以替换旧版本的VS安装程序。
解决方案代码示例:
FOR /f "delims=" %%a IN ('dir /b "C:\Program Files (x86)\Microsoft Visual Studio\Shared Debugger\VC_redist_x64.exe"') DO ( IF NOT EXIST "%%a" SET vs_redist_path = "C:\Program Files (x86)\Microsoft Visual Studio\Shared Debugger\VC_redist_x64.exe" mkdir "C:\Temp\vs_redist_temp" DEL "%vs_redist_path%" )
解决方案步骤二:检查SQL Server 2019 installer
- 查找安装脚本 在安装目录中找到名为
msodbcsql_Cpu64>Action:RollbackCleanup.vsi
的脚本。 - 更新Visual C++ Tools 右键点击该文件,选择“属性”,在弹出窗口中选中“工具箱和主题”选项卡,切换至“开发工具”组,选择“Microsoft SQL Server”。在“组件列表”中,检查“Microsoft SQL Server SP Component Framework”选项是否存在。
- 更新Visual Studio IDE 在MSBuild设置中,添加
Add Missing Link for .NET Framework (v3.5 and later)
复选框,如下所示:
<ItemGroup> <Reference Include="System.Data.SqlClient" /> </ItemGroup> <Target Name="CopyMissingLinkFiles"> <Output TaskParameter="missing_link_files_list" ItemName="missing_link_files"/> <GenerateCode ForType="System.Data.SqlClient.SqlConnection" LanguageVersion="v3.5" GenerateAssembly="true" BeforeTargets="PrepareForBuild"> <Target Name="FindVSMissingLinks"> <ItemGroup> <File Condition="Exists('$(SolutionDir)src\System.Data.SqlClient.props') AND NOT "$(SolutionDir)src\System.Data.SqlClient.props teammates"" AssemblyName="System.Data.SqlClient" Module="System.Data.SqlClient" Namespace="System.Data.SqlClient" Project="$(ProjectName)" ReplacementTokens="" /> <File Condition="Exists('$(SolutionDir)src\System.Data.SqlClient.tfslinks.props') AND NOT "$(SolutionDir)src\System.Data.SqlClient.tfslinks teammates"" AssemblyName="System.Data.SqlClient" Module="System.Data.SqlClient" Namespace="System.Data.SqlClient" Project="$(ProjectName)" ReplacementTokens="" /> <File Condition="Exists('$(SolutionDir)src\System.Data.SqlClient.sqldll.props') AND NOT "$(SolutionDir)src\System.Data.SqlClient.sqldll teammates"" AssemblyName="System.Data.SqlClient" Module="System.Data.SqlClient" Namespace="System.Data.SqlClient" Project="$(ProjectName)" ReplacementTokens="" /> <File Condition="Exists('$(SolutionDir)src\System.Data.SqlClient.sqldll_TfsLinks.props') AND NOT "$(SolutionDir)src\System.Data.SqlClient.sqldll_TfsLinks teammates"" AssemblyName="System.Data.SqlClient" Module="System.Data.SqlClient" Namespace="System.Data.SqlClient" Project="$(ProjectName)" ReplacementTokens="" /> </ItemGroup> </Target> <Target Name="CreateVsMissingLinkList"> <CreateItem Type="collection" PropertyPath="missing_link_files_list" RepeatCount="0"> <Item Path="$(SolutionDir)src\System.Data.SqlClient.props" /> <Item Path="$(SolutionDir)src\System.Data.SqlClient.tfslinks.props" /> <Item Path="$(SolutionDir)src\System.Data.SqlClient.sqldll.props" /> <Item Path="$(SolutionDir)src\System.Data.SqlClient.sqldll_TfsLinks.props" /> </CreateItem> </Target> <Target Name="FixVSMissingLinks"> <Compile Include="..\..\..\.vs\bin\Microsoft.Common.targets" /> <Target Name="CollectReferencedProjects"> <Action Command="Get-ChildItem $(SolutionDir)src | Select-Object -ExpandProperty FullName"> <Output TaskParameter="project_names" ItemName="projects" /> </Action> <PropertyGroup> <ProjectsToCheck projects="@(projects)" /> </PropertyGroup> <Message Text="Project names to check: @projects"></Message> <Verify-projects foreach-item project in projects { <PropertyGroup> <Script>Find-Module -name 'System.Data.SqlClient' -ea NoManifestResourceFile | Where-Object { $_.PSIsContainer -eq $false } | Foreach-object { $_.Name } | Remove-Module -Silently | Find-Module -name 'System.Data.SqlClient.TfsLinks' -ea NoManifestResourceFile | Where-Object { $_.PSIsContainer -eq $false } | Foreach-object { $_.Name } | Remove-Module -Silently | Find-Module -name 'System.Data.SqlClient.sqldll' -ea NoManifestResourceFile | Where-Object { $_.PSIsContainer -eq $false } | Foreach-object { $_.Name } | Remove-Module -Silently | } </PropertyGroup> <Properties /> </Verify-projects> </Target> <Target Name="RemoveDuplicatesOfProjects"> <Action Command="Find-Module -name 'System.Data.SqlClient' -ea NoManifestResourceFile | Where-Object { $_.PSIsContainer -eq $false } | Foreach-object { $_.Name } | Select-Object -ExpandProperty Name | distinct"> <Output TaskParameter="unique_names" ItemName="unique_names" /> </Action> <PropertyGroup> <UniqueNamesToCheck unique_names="@(unique_names)" /> </PropertyGroup> <Message Text="Unique names to check: @unique_names"></Message> <Verify-unique-names foreach-name unique_name in unique_names { <RemoveItem Project="@unique_name" RemoveReason="duplicate" /> } </Target> <Target Name="FixDuplicateProjects"> <Action Command="Remove-Item $(SolutionDir)src\System.Data.SqlClient.props -Recurse -Force -WhatIf"> <Output TaskParameter="removes" ItemName="removes" /> </Action> <PropertyGroup> <RemovesToCheck removes="@(removes)" /> </PropertyGroup> <Message Text="Removes to check: @removes"></Message> <Verify-removes foreach-remove remove-in-team "@" removesToRemove.Repo { <RemoveItem Project="@removeInTeam" RemoveReason="inconsistent" /> } </Target> <Target Name="BuildDependencyManagementModel"> <Exec Command=".\build.ps1 -Configuration Release -Verbosity detailed" /> </Target> <Target Name="CleanDependencies"> <Exec Command=".\build.ps1 -Configuration Release -Verbosity detailed -Tasks Clean" /> </Target> <Target Name="CreateRestorePoint" DependsOn="CleanDependencies,BuildDependencyManagementModel"> <Exec Command=".\build.ps1 -Configuration Release -Verbosity detailed -Task CreateRestorePoint" /> </Target> <Target Name="InstallSqlServer" DependsOn="CleanDependencies,BuildDependencyManagementModel"> <Exec Command=".\build.ps1 -Configuration Release -Verbosity detailed -Task InstallSqlServer" /> </Target> </Target> </Target> )
解决方案步骤三:修复SQL Server 2019 installer
-
清理SQL Server 2019 installer 删除所有已安装的碎片化的SQL Server 2019 installation files,例如
%temp%\sqlserver\[安装版本]\
存储路径下的.sqlinstall
,.sqlsetup
,.log
,.manifest
,config.msi
,productkey.msi
, etc. -
重新初始化SQL Server安装 首先,打开SQL Server Management Studio,右键点击“恢复到初始状态”,选择“全部还原”。
-
删除临时安装日志文件 如果有创建的SQL Server 2019临时安装日志文件,执行以下操作:
find %temp%\sqlserver\[安装版本]\ -type f -name "*.log" -delete
这将删除所有的SQL Server 2019临时安装日志文件。
-
卸载SQL Server 2019 使用以下命令卸载SQL Server 2019:
uninstall -name sqlserver2019
注意:若用户已设置了自动重启,此步骤可能会导致安装停止或异常。建议在完成后进行重启或查看SQL Server的状态。
解决方案步骤四:尝试重新安装SQL Server 2019
- 从Microsoft Download Center获取最新安装镜像 如果上述步骤都无法解决问题,可以从Microsoft Download Center(https://www.microsoft.com/download)中下载SQL Server 2019的官方发行版安装镜像。
- 确定网络连接和下载路径 确保您的网络连接正常,并且SQL Server 2019的官方下载路径位于下载中心目录下,例如:
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 x趋于0时tanx-sinx极限可以拆开算吗
- ¥500 把面具戴到人脸上,请大家贡献智慧
- ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
- ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
- ¥30 c#打开word开启修订并实时显示批注
- ¥15 如何解决ldsc的这条报错/index error
- ¥15 VS2022+WDK驱动开发环境
- ¥30 关于#java#的问题,请各位专家解答!
- ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
- ¥20 pcf8563时钟芯片不启振