У меня возникла досадная проблема в одном из моих проектов, где производственная среда использует Microsoft Office 2000, а у нас Microsoft Office 2003 только в среде разработки.
Я использую автоматизацию для некоторых манипуляций с документами Word, поэтому для выполнения этой работы как в рабочей среде, так и в среде разработки мне нужно поместить условный оператор компилятора в раздел using моего кода во всех файлах, использующих автоматизацию.
#if DEVELOPEMENT
using Word = Microsoft.Office.Interop.Word;
#else
using Office;
#endif
Редактировать. Я знаю, что очевидным решением является внедрение Microsoft Office 2000 в среду разработки, но это нелегко, если вы хотите сделать это легальным путем.
Я использую Visual Studio 2005, поэтому есть ли более элегантный способ избежать этого условного оператора компилятора?
Edit: решение с использованием инструмента TlbImp.exe из SDK работает прекрасно, вам просто нужно помнить, чтобы дать сгенерированному файлу строгое имя, генерируя ключевой файл с помощью инструмента sn.exe, иначе Visual Studio не скомпилирует решение:
"c:\...\SDK\v2.0\Bin\TlbImp.exe" "c:\...\Microsoft Office\Office10\MSWORD9.OLB" /keyfile:Office.snk /out:Office.dll