Программа не работает на компе заказчика. C++ .NET. Я попал?
От: MozgC США http://nightcoder.livejournal.com
Дата: 04.03.05 21:52
Оценка:
Здравствуйте, В общем такие дела... Пишу я программу на 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. Я по
От: _FRED_ Черногория
Дата: 04.03.05 22:04
Оценка:
Здравствуйте, 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. Я
От: MozgC США http://nightcoder.livejournal.com
Дата: 04.03.05 22:16
Оценка:
_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, а реально, на клиенте, присутсвует другая версия.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: Программа не работает на компе заказчика. C++ .NET. Я
От: MozgC США http://nightcoder.livejournal.com
Дата: 04.03.05 22:18
Оценка:
А>Ну скорее всего версия excel не та.

И что делать если не та? Получается моя программа будет работать только на тех компах, на которых тот же Excel? =)

Сорри ребят за глупые вопросы, просто с .NET и с Office имею дело первый раз.
Re[3]: Программа не работает на компе заказчика. C++ .NET. Я
От: MozgC США http://nightcoder.livejournal.com
Дата: 04.03.05 22:23
Оценка:
Отослал сейчас проект другу, у него Office 2003, у меня Office XP — у него все нормально работает... Правда у друга тоже Visual Studio стоит... Если дело не в версии оффиса то почему может не работать у заказчика?
Re: Программа не работает на компе заказчика. C++ .NET. Я по
От: squiz  
Дата: 04.03.05 23:34
Оценка:
Здравствуйте, MozgC,

На пути .НЕТа встретилась другая сборка с именем office.dll но другой версии. Например аппликуха требует 2.8.0.3 а встретилась 1.0.99.2
Первым делом дотНЕТ смотрит в ГАК потом в аппбэйс (или под ноги). И еси он там или там найдет office.dll но не той версии что требует аппликуха он не пойдет искать дальше а выбросит ексепшн.

Так что надо добавлять в ГАК.
Never underestimate those behind you...
Re[2]: Программа не работает на компе заказчика. C++ .NET. Я
От: MozgC США http://nightcoder.livejournal.com
Дата: 04.03.05 23:52
Оценка:
S>На пути .НЕТа встретилась другая сборка с именем office.dll но другой версии. Например аппликуха требует 2.8.0.3 а встретилась 1.0.99.2
S>Первым делом дотНЕТ смотрит в ГАК потом в аппбэйс (или под ноги). И еси он там или там найдет office.dll но не той версии что требует аппликуха он не пойдет искать дальше а выбросит ексепшн.

S>Так что надо добавлять в ГАК.


Sorry, но что такое ГАК?
Re[2]: Программа не работает на компе заказчика. C++ .NET. Я
От: Аноним  
Дата: 05.03.05 10:16
Оценка:
Global Assembly Cache


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[4]: Программа не работает на компе заказчика. C++ .NET. Я
От: Добрый Ээх  
Дата: 05.03.05 13:12
Оценка:
Здравствуйте, MozgC, Вы писали:

MC>Отослал сейчас проект другу, у него Office 2003, у меня Office XP — у него все нормально работает... Правда у друга тоже Visual Studio стоит... Если дело не в версии оффиса то почему может не работать у заказчика?


А у заказчика Офис 2000 небось?
Re[5]: Программа не работает на компе заказчика. C++ .NET. Я
От: MozgC США http://nightcoder.livejournal.com
Дата: 05.03.05 18:57
Оценка:
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. Я
От: MozgC США http://nightcoder.livejournal.com
Дата: 06.03.05 12:07
Оценка:
Парни, неужто никто не подскажет как из ситуации выйти?
Re[7]: Программа не работает на компе заказчика. C++ .NET. Я
От: TK Лес кывт.рф
Дата: 06.03.05 13:17
Оценка:
"MozgC",
> Парни, неужто никто не подскажет как из ситуации выйти?

Попробуй взять утилиту ILMerge и собрать все в одну сборку
Posted via RSDN NNTP Server 2.0 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[8]: Программа не работает на компе заказчика. C++ .NET. Я
От: MozgC США http://nightcoder.livejournal.com
Дата: 06.03.05 14:03
Оценка:
TK>Попробуй взять утилиту ILMerge и собрать все в одну сборку

Это где такую взять?
Re[8]: Программа не работает на компе заказчика. C++ .NET. Я
От: Аноним  
Дата: 06.03.05 14:18
Оценка:
http://www.research.microsoft.com/research/downloads/


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[9]: Программа не работает на компе заказчика. C++ .NET. Я
От: MozgC США http://nightcoder.livejournal.com
Дата: 06.03.05 14:54
Оценка:
А>http://www.research.microsoft.com/research/downloads/

Спасибо, щас гляну.

Кстати, у меня Office 2003, у заказчика Office XP. Попробую конечно просто перекомпилировать программу со ссылками на Office XP, но в любом случае хотелось бы независимости от версии Office, чтобы работало даже с установленным 97-м.
Re[10]: Программа не работает на компе заказчика. C++ .NET.
От: TK Лес кывт.рф
Дата: 06.03.05 15:11
Оценка:
"MozgC"
>
> Кстати, у меня Office 2003, у заказчика Office XP. Попробую конечно просто перекомпилировать программу со ссылками на Office XP, но в любом случае хотелось бы независимости от версии Office, чтобы работало даже с установленным 97-м.

Пиши на VB и используй позднее связываение.
Posted via RSDN NNTP Server 2.0 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[11]: Программа не работает на компе заказчика. C++ .NET.
От: MozgC США http://nightcoder.livejournal.com
Дата: 06.03.05 15:37
Оценка:
А кто-нибудь все-таки может сказать как сделать чтобы dll сразу брались из того же каталога где и .exe ? Желательно с примером...
Re[12]: Программа не работает на компе заказчика. C++ .NET.
От: MozgC США http://nightcoder.livejournal.com
Дата: 06.03.05 21:20
Оценка:
В общем косяк был в том, что мне VS подсовывала какую-то левую office.dll, я удалил полностью все файлы из всяких темпов (такая директория есть в проекте в C++ .NET) и пересобрал прогу. Все стало работать, office.dll появился уже другого размера =)
Это во-первых.
Во-вторых, надо чтобы версии оффиса и экселя были одинаковые, т.е. когда добавляем COM библиотеки в references, надо чтобы например и библиотека excel'я и библиотека office'а были 11-ой версии. Нельзя чтобы например excelевская была 11-ой версии а office.dll 8-ой версии.

Так что проблема решена, программа работает и с office XP и с office2003. С office97 не работает, т.к. у 97-го и новых офисов некоторые функции не совпадают даже по количеству параметров, так что думаю тут уж ничего не поделаешь и с 97-м офисом работать не заставишь.

Всем спасибо за участие.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.