【问题标题】:C# App Install Error - microsoft.visualstudio.hostingprocess.utilites.sync version 9.0.0.0 missing from Global Assembly Cache (GAC)C# 应用安装错误 - 全局程序集缓存 (GAC) 中缺少 microsoft.visualstudio.hostingprocess.utilites.sync 版本 9.0.0.0
【发布时间】:2011-04-07 22:56:32
【问题描述】:

背景:我有一个用 C# 编写的 winforms 应用程序,它通过从命令行调用第二个完全独立的应用程序 ConvertExcelTo.Exe 将 xlsx 文件转换为 csv。我正在使用 Build Publishing 工具从 winforms 应用程序的解决方案中编译安装/安装文件。

问题:Windows 安装程序在我的装有 Windows 7 Ultimate、Visual Studio 2010 Premium 和 Framework 3.5 的计算机上完成且没有任何错误,但在没有 VS 的 Windows XP SP3 上运行的用户收到以下安装错误消息:

   This application requires microsoft.visualstudio.hostingprocess.utilites.sync 
   version 9.0.0.0 be installed in the Global Assembly Cache (GAC) first.

在我选择的先决条件下:

  • Windows 安装程序 3.1
  • .Net Framework 3.5
  • 从组件供应商的网站下载先决条件

在我拥有的应用程序文件下:

  • 包含的文件:CCP_Utility.exe、CCP_Utility.exe.config、CCP_Utility.exe.manifest、ConvertExcelTo.exe、ExcelConversion.dll、Icon1.ico、Microsoft.Office.Interop.Excel.dll、Microsoft.Vbe.Interop。 dll、office.dll
  • 排除的文件:CCP_Utility.vshost.exe、CCP_Utility.pdb
  • 必备文件:Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll、stdole.dll

我试过了:

问题:

  • 用户必须下载什么才能让安装程序顺利完成?
  • 我需要在 Publisher 中编辑哪些内容,以免其他用户收到此错误?
  • 是否应该将任何必备文件设置为包含文件?

感谢收看! :)

【问题讨论】:

  • @Hans,通过右键单击“目标计算机上的文件系统”并选择“全局程序集缓存文件夹”,我在 GAC 中的何处注册程序集?为这个例子做这个工作吗?
  • 呃,我从来没有评论过这个问题。
  • @Hans,您在这里评论了一个与 GAC 相关的类似问题:stackoverflow.com/questions/1889906/…
  • 不要部署 app.vshost.exe 文件,它只是用来调试的。仅部署 app.exe 文件。从您的 Release 构建文件夹中。 ——汉斯
  • 不要不要向 GAC 安装任何东西。你已经对客户的机器造成了足够的损害。你需要一个更有经验的团队成员的帮助,所以不能成为你的后盾。

标签: c# winforms windows-installer setup-deployment


【解决方案1】:

我通过将安装和部署项目添加到现有项目以创建安装程序来解决此问题,在该安装程序中我可以通过右键单击“目标计算机上的文件系统”来选择“全局程序集缓存文件夹”

  1. 在现有项目中,转到文件菜单 > 单击添加 > 新项目 > 现在将出现“添加新项目”对话框。

  2. 选择“其他项目类型”并单击“设置和部署”项目,选择“设置项目”在名称文本框中输入项目名称最后单击确定。

  3. 新项目出现在解决方案资源管理器中,例如,您命名为“myEXE”的文件将以给定名称显示。

  4. 右键单击 myEXE > 转到查看

  5. 您可以在 3 个文件夹下看到“目标计算机上的文件系统”: 应用程序文件夹、用户桌面和用户程序菜单。右键单击“目标机器上的文件系统”并选择“全局程序集缓存文件夹”

  6. 选择应用程序文件夹并右键单击添加>项目输出>选择主输出

  7. 选择用户桌面 Richt 点击第二个窗口>点击创建新快捷方式>从应用程序文件夹中选择输出文件>将文件名从主输出名称更改为 myEXE 8.最后构建新项目 成功构建项目后myEXE(Setup)会出现在Application Debug或Release文件夹中(取决于属性设置)

我希望这对其他人也有帮助:)

【讨论】:

  • 十分之九,如果您在向客户部署应用程序时遇到问题,解决方案将是创建一个安装程序供他们运行。它消除了丢失依赖项的可能性,并且比尝试(或让他们尝试)弄乱他们的系统并自己将丢失的文件复制到正确的位置是一个远远更好的选择。您永远不应手动将程序集安装到 GAC。 +1 提出正确的解决方案。
  • 感谢@Cody 的 +1,在对我的问题进行了令人沮丧的投票后,我需要一些令人振奋的东西哈哈。我只是改写了我的问题,以使其对其他人更有用。您是否建议在问题中添加其他内容?
  • 我不明白您为什么需要在问题中添加任何其他内容。这没有解决问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多