首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于生产和开发环境的不同使用说明

关于生产和开发环境的不同使用说明
EN

Stack Overflow用户
提问于 2009-02-14 11:44:21
回答 3查看 208关注 0票数 0

在我的一个项目中,我遇到了一个恼人的问题,该项目的生产环境使用Microsoft Office2000,而我们的开发环境中只有Microsoft Office2003。

我使用自动化来对Word文档进行一些操作,因此为了在生产和开发环境中都能工作,我必须在使用自动化的所有文件中的代码的using部分中放入一个条件编译器语句。

代码语言:javascript
复制
   #if DEVELOPEMENT 
   using Word = Microsoft.Office.Interop.Word;
   #else
   using Office;
   #endif

编辑:我知道最明显的解决方案是将Microsoft Office2000移植到开发环境中,但如果你想以合法的方式做到这一点,这并不容易。

我使用的是Visual Studio2005,那么有没有更好的方法来避免这个条件编译器语句呢?

编辑:使用来自SDK的TlbImp.exe工具的解决方案工作得很好,你只需要记住通过使用sn.exe工具生成一个密钥文件来给生成的文件一个强名称,否则Visual Studio将不会编译这个解决方案:

代码语言:javascript
复制
"c:\...\SDK\v2.0\Bin\TlbImp.exe" "c:\...\Microsoft Office\Office10\MSWORD9.OLB" /keyfile:Office.snk /out:Office.dll
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-02-14 12:52:56

找到安装了Office2000和.NET的计算机。在其上运行以下命令:

Tlbimp "c:...\msword.olb“/out:Word.dll

哪里..。是Office安装目录。将Word.dll复制到您的开发机器上。在您的项目中添加对它的引用,确保将Copy Local设置为Yes (默认情况下)。现在,您可以对任何版本的Office使用“使用Word”。必须将Word.dll文件部署到与.exe位于同一目录下的目标计算机上

票数 1
EN

Stack Overflow用户

发布于 2009-02-14 11:48:33

让人找到Office2000安装程序并开发OFfice 2000。如果你没有like环境,你就不能确保你的代码能在生产环境中工作。

票数 5
EN

Stack Overflow用户

发布于 2009-02-14 12:04:16

我倾向于同意这样的评论,即最便宜的解决方案是安装相同版本的office,在其他情况下,您也需要解决此问题:

您可以创建一个界面,该界面提供进行办公交互所需的功能。然后,您可以创建两个独立的模块来实现相同的接口,一个依赖于office 2000,另一个依赖于2003。您可能应该将这些接口放在第三个模块中。

在代码中,您可以按名称实例化实现,而不是使用常规的"new“。这意味着您只需切换不同office版本的模块即可。您的主项目只能依赖于接口,而不需要依赖于office。

代码语言:javascript
复制
Office2000Module ----> Interfaces <------ Main application code
                         ^ 
                         |
Ofice 20003Module--------/
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/548987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档