win系统安装sql server报错,已经安装了Visual C++ 2017 Redistributable,也是以系统管理员身份运行,找不到问题



win系统安装sql server报错,已经安装了Visual C++ 2017 Redistributable,也是以系统管理员身份运行,找不到问题



引自免费微信小程序:皆我百晓生
在解决Windows安装SQL Server 2019过程中遇到的问题时,可能需要遵循以下几个步骤和代码示例:
解决问题步骤一:检查VS redistributable
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的脚本。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