依赖:Microsoft Word?

时间:2013-06-24 15:24:32

标签: c# .net web

我写了一个小应用程序,我正在分发给我的一些朋友。它与网页交互,我认为奇怪的唯一依赖是Microsoft.mshtml.dll与某些网页控件进行交互。

我们注意到一种奇怪的行为,在某些计算机上它起作用,而在其他计算机上却没有。我告诉他们所有人都要确保安装.Net 4.0 Framework FULL而不是客户端配置文件。它仍然无效。

我的一个朋友注意到他的机器已经安装了Microsoft Word,其他人没有。所以他安装了一个试用版,神奇地,我的程序开始工作了!

安装了不在.Net Framework中的Microsoft Word?有什么办法可以发给他们所需的文件吗?

注意:我最初使用的是安装程序,它工作正常,但我无法弄清楚如何更新应用程序,所以我们回到我身边只是将它们以压缩方式发送给应用程序。所以,请不要回答“制作安装程序项目”。我目前正试图弄清楚如何制作更新程序,这不是这里讨论的主题。

谢谢!

编辑:我没有明知为Word添加任何依赖...

4 个答案:

答案 0 :(得分:2)

如果您使用的是像Microsoft.mshtml.dll这样的库,它们不是.Net框架的一部分,但是属于Native .Net,则有可能目标机器缺少这些库。对于例如Microsoft.mshtml.dll附带Visual Studio工具,用于办公室支持等。因此,如果目标计算机上未安装Office / Visual Studio,则应用程序将无法运行。

作为替代解决方案,识别它们并保留这些相关dll的本地副本并将其发送到您的包中。但这不是最佳做法。

但Paul_R说得对。在发布之前,确定您的客户端基础架构,计划和测试一次(在目标环境中)。请记住,您有一台开发者机器,但其他人没有。

答案 1 :(得分:1)

嗯,最好避免依赖其他应用程序。因此,尽量避免使用该库提供的方法/数据结构。有可能有一个原生于.NET的库可以满足您的需求。如果没有,请查找一些开源库,您可以使用.dll形式轻松地将其包含在您的应用程序中(在许多情况下,您甚至可以告诉它将自己附加到应用程序中)。如果您正在进行一些html解析,我完全推荐HTMLAgilityPack(http://htmlagilitypack.codeplex.com/)。

答案 2 :(得分:0)

要回答您提出的问题: 使用未随.NET Framework一起安装的Word安装了LOT。 Word是非常复杂的应用程序。

理论上,是的,您可以向他们发送所需的文件。 在实践中,您手动重新创建半个Word安装,并侵犯版权。请不要。

我同意Paul_R:如果您的"客户"尽量避免依赖。不是Word用户。

答案 3 :(得分:0)

  

安装了不在.Net中的Microsoft Word   框架?

Microsoft Word应用程序本身及其所有支持文件。

  

有什么办法可以发给他们所需的文件吗?

是。但是,在继续之前,您需要考虑一些事项。

  • 重新分发您依赖的一些内容可能是违法的。在继续之前,请仔细阅读并进行研究。
  • 如果您依赖于具有所需依赖关系的系统,您将遇到存在依赖关系或存在其他版本的依赖关系的问题。

最安全的赌注是找到一些轻量级且可自由再发行的东西,它具有您需要的功能,而不是Microsoft Word。

或者,您可以让应用程序禁用使用可能不存在的依赖项的功能。

编辑:如果您要部署依赖项,只需要识别它们并确保它们已打包。像.NET Reflector这样的工具非常适合识别所有下游依赖项。