【发布时间】: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
我试过了:
- 将现有项 ConvertExcelTo.exe 和 ExcelConversion.dll 添加到项目解决方案并从外部删除对这些文件的引用
- 从 Build Publisher 下的应用程序文件中排除 ConvertExcelTo.vshost.exe 并从解决方案中删除该文件
- 在此处安装适用于 XP SP3 和 Vista 的 Windows 4.5 SDK:http://download.microsoft.com/download/7/c/4/7c426dfc-46e2-4ded-bab4-3b33600ad7d1/msi45sdk.msi
问题:
- 用户必须下载什么才能让安装程序顺利完成?
- 我需要在 Publisher 中编辑哪些内容,以免其他用户收到此错误?
- 是否应该将任何必备文件设置为包含文件?
感谢收看! :)
【问题讨论】:
-
@Hans,通过右键单击“目标计算机上的文件系统”并选择“全局程序集缓存文件夹”,我在 GAC 中的何处注册程序集?为这个例子做这个工作吗?
-
呃,我从来没有评论过这个问题。
-
@Hans,您在这里评论了一个与 GAC 相关的类似问题:stackoverflow.com/questions/1889906/…
-
不要部署 app.vshost.exe 文件,它只是用来调试的。仅部署 app.exe 文件。从您的 Release 构建文件夹中。 ——汉斯
-
不要不要向 GAC 安装任何东西。你已经对客户的机器造成了足够的损害。你需要一个更有经验的团队成员的帮助,所以不能成为你的后盾。
标签: c# winforms windows-installer setup-deployment