c# - 单击一次部署。该应用程序需要该程序集 MSDATASRC 版本

标签 c# .net interop .net-assembly gac

我创建了 ClickOnce 部署,一些安装它的客户端收到错误:

Unable to install or run the application. The application requires that assembly MSDATASRV Version 7.0.3300.0 be installed in the Global Assumbly Cache (GAC) first.

这是一个 Microsoft dll,位于我的构建计算机上的“C:\Program Files\Microsoft.NET\Primary Interop Assemblies”中,并在我的项目中引用。

我知道有些客户没有这个。我需要找出这个 DLL 从哪里来,以及为什么只有某些客户端缺少它。由于它是 Microsoft Dll,我无法自己分发它。

最佳答案

您实际上不太可能需要 PIA。选择 MSDATASRC 程序集引用并将其 Copy Local 属性设置为 True。现在,您将在构建目录中获得 Interop.MSDATASRC.dll 的副本,并将其与其余可执行文件一起部署。

请测试一下。如果您现在在测试代码时收到 InvalidCastException,那么您确实需要在用户计算机上部署 PIA。 ClickOnce 无法做到这一点,您必须要求用户自己安装它。下载并安装 Office PIA 即可完成此操作。您还强烈希望考虑更新您的 VS 版本,VS2010 及更高版本支持嵌入互操作类型选项,也称为“无 PIA”选项。

关于c# - 单击一次部署。该应用程序需要该程序集 MSDATASRC 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19809345/

相关文章:

c# - 为什么C++工程依赖的C#工程修改后不会自动重建?

c# - 使用 C# 和 WMI 在远程计算机上的本地管理员组中添加和删除域用户

c# - 伪造一个字符串引用

c# - Razor 模板中的可空日期时间错误

c# - Excel Interop (Visual Studio C#) - "Embed Interop Type"属性

c# - 需要有关如何从 .docx/.doc 文件中提取数据然后将数据提取到 SQL Server 中的建议

c# - BringToFront() 方法会触发哪些事件?

c# - Xamarin Admob RewardedVideoAd 代码错误 0 和 3

.net - MVC4 格式日期未使用 DisplayFormat 值进行验证

c# - 无法使用 COM 和 .NET 互操作从 AcroPDF.dll 实例化 PDF 浏览器控件