我想知道在C#Express中部署引用的COM对象。
我添加了MS Access对象,该对象在我的一个函数中使用。然而。当我使用Express中的“发布”工具构建安装包时,它似乎不会将其添加到包中。
这导致我的测试台PC出现问题,除了Windows之外,它没有任何内容。该应用程序正常工作,直到它到达需要Access引用/对象的程度。此时它会引发异常错误。
如果这是许可问题 - 这很好(并且可以理解),但我只需要关于这个主题的一些信息。
答案 0 :(得分:2)
除非您告诉Visual Studio执行此操作,否则不会将内部.Net程序集复制到输出目录。只需转到引用的程序集并将“copy local”选项设置为“true”。
更方便的方法是手动将文件包含在项目中(在你的开发者手机上搜索它)并对复制的文件进行项目引用(听起来很奇怪,但这样就不需要GAC注册过程了试验机)
如上所述,另一种方式当然是安装完整的互操作包。
这并不涵盖任何许可证问题,因为它没有得到Microsoft的明确定义..有2个一般性意见:
互操作程序集只能创建与办公室“交谈”的可能性,因此可以自由使用它们..但为什么要在没有办公室的系统上执行呢?
互操作程序集与Office具有相同的EULA,因此只能在安装Office时使用
微软没有明确的声明,我认为这是微软常见的策略......
答案 1 :(得分:1)
在目标计算机上安装Office Primary Interop Assemblies应该可行,但我无法就许可方面提供建议。
无论哪种方式,Access或PIA都需要在那里。