Здравствуйте, В общем такие дела... Пишу я программу на C++ .NET. В основном работа с Access базой данных и Excel документами. Отослал я ее сегодня заказчику... а у него такая ошибка: "the located assembly's manifest definition with the name 'office' does not match the assembly reference." Что делать я не знаю. Может кто сталкивался с такой проблемой? Все нужные .dll я ему отослал... Ошибка происходит не сразу а в процедуре генерации отчета в excel файле. В чем может быть проблема? Заранее спасибо.
Re: Программа не работает на компе заказчика. C++ .NET. Я по
Здравствуйте, MozgC, Вы писали:
MC>Здравствуйте, В общем такие дела... Пишу я программу на C++ .NET. В основном работа с Access базой данных и Excel документами. Отослал я ее сегодня заказчику... а у него такая ошибка: "the located assembly's manifest definition with the name 'office' does not match the assembly reference." Что делать я не знаю. Может кто сталкивался с такой проблемой? Все нужные .dll я ему отослал... Ошибка происходит не сразу а в процедуре генерации отчета в excel файле. В чем может быть проблема? Заранее спасибо.
Уверен, что отправил все сборки, типы из которых используются в этой процедуре (все, указанные в References, а не только те, что копируются студией в Release\bin)? Установлен ли у него офис той же версии что и у тебя?
Help will always be given at Hogwarts to those who ask for it.
Re: Программа не работает на компе заказчика. C++ .NET. Я по
От:
Аноним
Дата:
04.03.05 22:10
Оценка:
Ну скорее всего версия excel не та.
Re[2]: Программа не работает на компе заказчика. C++ .NET. Я
_FR>Уверен, что отправил все сборки, типы из которых используются в этой процедуре (все, указанные в References, а не только те, что копируются студией в Release\bin)? Установлен ли у него офис той же версии что и у тебя?
В C++ каталога bin нету, но отправил все dll которые высмотрел по references...
А вообще в C++ в каталог debug или release копируются не все dll на которые указывают references даже при установке Copy Local = true. Но dll вроде отослал все. Насчет офиса точно не знаю, спрошу завтра.
Программа не работает на компе заказчика. C++ .NET. Я попал?
От:
Аноним
Дата:
04.03.05 22:09
Оценка:
Судя по описанию, Вы скомпилировались с одной версией сборки office, а реально, на клиенте, присутсвует другая версия.
Отослал сейчас проект другу, у него Office 2003, у меня Office XP — у него все нормально работает... Правда у друга тоже Visual Studio стоит... Если дело не в версии оффиса то почему может не работать у заказчика?
Re: Программа не работает на компе заказчика. C++ .NET. Я по
На пути .НЕТа встретилась другая сборка с именем office.dll но другой версии. Например аппликуха требует 2.8.0.3 а встретилась 1.0.99.2
Первым делом дотНЕТ смотрит в ГАК потом в аппбэйс (или под ноги). И еси он там или там найдет office.dll но не той версии что требует аппликуха он не пойдет искать дальше а выбросит ексепшн.
Так что надо добавлять в ГАК.
Never underestimate those behind you...
Re[2]: Программа не работает на компе заказчика. C++ .NET. Я
S>На пути .НЕТа встретилась другая сборка с именем office.dll но другой версии. Например аппликуха требует 2.8.0.3 а встретилась 1.0.99.2 S>Первым делом дотНЕТ смотрит в ГАК потом в аппбэйс (или под ноги). И еси он там или там найдет office.dll но не той версии что требует аппликуха он не пойдет искать дальше а выбросит ексепшн.
S>Так что надо добавлять в ГАК.
Sorry, но что такое ГАК?
Re[2]: Программа не работает на компе заказчика. C++ .NET. Я
Здравствуйте, MozgC, Вы писали:
MC>Отослал сейчас проект другу, у него Office 2003, у меня Office XP — у него все нормально работает... Правда у друга тоже Visual Studio стоит... Если дело не в версии оффиса то почему может не работать у заказчика?
А у заказчика Офис 2000 небось?
Re[5]: Программа не работает на компе заказчика. C++ .NET. Я
C Global Assembly Cache неохото было бы связываться.. Не нужно оно просто в моем небольшом проекте. Хотелось бы, чтобы dll брались из той же директории что и .exe.
Поиском по форума нашел, что это можно сделать 3 способами:
[quote]1) регестрируешь сборку в Global Assembly Cache (см. gacutil.exe)
2) пишешь файл с расширением .config и прописываешь там, где у тебя находятся dll
3) в коде: Activator.CreateInstance — и даёшь путь к dll[/quote]
Первый способ отпадает, GAC мне не нужен. А вот по поводу второго и третьего способа я не понял. Может кто-нибудь объяснит? Пример подкинет? Хотелось бы конечно чтобы все-таки все делалось программно (3 способ), т.е. без .config файла. Но буду рад и примеру .config файла.
Заранее спасибо.
Re[6]: Программа не работает на компе заказчика. C++ .NET. Я
Кстати, у меня Office 2003, у заказчика Office XP. Попробую конечно просто перекомпилировать программу со ссылками на Office XP, но в любом случае хотелось бы независимости от версии Office, чтобы работало даже с установленным 97-м.
Re[10]: Программа не работает на компе заказчика. C++ .NET.
"MozgC" > > Кстати, у меня Office 2003, у заказчика Office XP. Попробую конечно просто перекомпилировать программу со ссылками на Office XP, но в любом случае хотелось бы независимости от версии Office, чтобы работало даже с установленным 97-м.
Пиши на VB и используй позднее связываение.
Posted via RSDN NNTP Server 2.0 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[11]: Программа не работает на компе заказчика. C++ .NET.
В общем косяк был в том, что мне VS подсовывала какую-то левую office.dll, я удалил полностью все файлы из всяких темпов (такая директория есть в проекте в C++ .NET) и пересобрал прогу. Все стало работать, office.dll появился уже другого размера =)
Это во-первых.
Во-вторых, надо чтобы версии оффиса и экселя были одинаковые, т.е. когда добавляем COM библиотеки в references, надо чтобы например и библиотека excel'я и библиотека office'а были 11-ой версии. Нельзя чтобы например excelевская была 11-ой версии а office.dll 8-ой версии.
Так что проблема решена, программа работает и с office XP и с office2003. С office97 не работает, т.к. у 97-го и новых офисов некоторые функции не совпадают даже по количеству параметров, так что думаю тут уж ничего не поделаешь и с 97-м офисом работать не заставишь.