microsoft同步数据服务器版本2.0.0.0将安装在Global Assembly缓存中

时间:2014-12-25 12:09:47

标签: c# visual-studio-2010 sync microsoft-sync-framework

我正在尝试在客户端的计算机上部署我发布的项目,但是设置一直给我这个错误“要在全局程序集缓存中安装的microsoft同步数据服务器版本2.0.0.0”

任何帮助都将不胜感激! 我在C#Visual stuido 2010上工作,我的电脑是64位,而我的客户端电脑也是64位 感谢

1 个答案:

答案 0 :(得分:2)

您必须在客户端PC上安装Sync Framework。也许还有一些其他的Sql框架。

This page says:

  

在x86平台上,x86安装包会安装   以下组件到Program Files \ Microsoft SDKs \ Microsoft Sync   Framework \ 2.1,并将托管DLL添加到全局程序集缓存中   (GAC)。在x64平台上,安装x86和x64   包安装到Program Files(x86)\ Microsoft SDKs \ Microsoft Sync   框架\ 2.1。平台和安装包的其他组合   可能会在安装路径上产生轻微变化。

Download link

如果您希望在安装应用程序时将其作为先决条件,请查看this thread。 但是我建议你使用Inno Script studio来安装。 (免费且易于使用,但我想逆向工程并不难,只是说)。

Here is a post关于使用Inno Script自动安装.NET framework 4.0(或任何其他)。

完成后,我就是设法安装Sync Framework的方法,而不是完全自动化,但至少在安装应用程序时启动安装程序。并且通过设置很好,我无法自动完成它,因为Sync Framework安装程序是.MSI文件。

将此添加到文件部分:

[Files]
Source: "C:DIRECTORYHERE\Dependencies\SqlLocalDB.MSI"; DestDir: "{tmp}"; Flags: deleteafterinstall; Permissions: everyone-full; Check: SqlIsNotInstalled; AfterInstall: InstallSql

代码部分(您可以将其放在脚本的底部):

[Code]
procedure InstallSql;

var
  ResultCode: Integer;
  StatusText: string;
begin
  StatusText := WizardForm.StatusLabel.Caption;
  WizardForm.StatusLabel.Caption := 'Installing Microsoft SQL Local Database...';

   if not ShellExec('',ExpandConstant('{tmp}\SqlLocalDB.MSI'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
     begin
    MsgBox('SQL local DB failed with code: ' + IntToStr(ResultCode) + '.',
      mbError, MB_OK);
    WizardForm.StatusLabel.Caption := StatusText;

  end;
end;

并检查它是否已安装:

[code]
function SqlIsNotInstalled: Boolean;
begin
  Result := not RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\11.0');
end;