【问题标题】:microsoft synchronization data server version 2.0.0.0 to be installed in Global Assembly cachemicrosoft 同步数据服务器版本 2.0.0.0 将安装在全局程序集缓存中
【发布时间】:2014-12-25 12:09:46
【问题描述】:

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

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

【问题讨论】:

  • 您安装了 Sync Framework 吗?在您的客户电脑上
  • 不,我还没有从哪里安装它?因为我的客户没有视觉工作室或任何东西

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


【解决方案1】:

您必须在客户端 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;

【讨论】:

  • 其实我刚才所做的是将应用程序文件中的文件设置从 prerequest(auto) 更改为 include 并且它起作用了,它会在将来引起任何问题还是它会正常工作现在?
  • 好吧,如果它那么容易,那么请跳过我的那个线程,对我来说,我无法从先决条件列表中选择它。我认为它将来不会有任何问题,但我建议您使用其他软件来制作安装程序,ClickOnce 应用程序并不那么......安全。
  • 感谢您的即时回复和帮助,该应用程序仅适用于单个客户端,所以我应该在使用 ClickOnce 应用程序时保留它还是为它制作一个新的安装程序?
  • 只是看起来更专业,在这种情况下将其保留为 ClickOnce 应用程序没有问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-20
  • 1970-01-01
  • 1970-01-01
  • 2019-05-30
  • 1970-01-01
相关资源
最近更新 更多