0

Я создал проект (который ведет себя по-разному на 2 разных компьютерах, хотя все файлы одинаковы.VS2008 C++/CLI проект добавляет ненужный office.dll в папку вывода

Проект компилируется в управляемой DLL. Это является частью решения (скажем, «решение A»), которое имеет 4 проекта. Этот проект ссылается на другой проект решения A и различные управляемые DLL другого решения B.

На компьютере 1, где я занимался разработкой, он компилируется так, как ожидалось, и работает нормально.
На компьютере 2, где я в основном использую файлы, он компилируется и работает нормально, но во время компиляции есть 2 файла эд в папку вывода, хотя они не ссылаются в любом месте:

1>Kopieren von "c:\Program Files\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office12\Office.dll" in das Zielverzeichnis... 
1>Kopieren von "c:\Program Files\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office12\Microsoft.Office.Interop.Outlook.dll" in das Zielverzeichnis... 

Я не использую эти файлы, ни ссылки на них или функции их в любом месте, в моем коде. Почему они копируются?
Это не больно, хотя, но я хотел бы знать, если что-то пойдет не так.

+0

Ну, довольно безопасно предположить, что вам действительно нужны файлы взаимодействия Outlook, чтобы ваша программа запускалась. Скопированы ли они, определяется свойством Copy Local для ссылки и установлено ли PIA на машине. Вероятно, это не так. Развертывание их никогда не является действительно неправильным, просто ненужным, если на целевой машине установлен PIA. Должно быть, есть некоторые сценарии сбоев, если они отсутствуют. –

+0

Я не изменял свойство CopyLocal в любом проекте, поэтому по умолчанию это правда. Проекты на 100% идентичны на обоих компьютерах, когда я копирую их из одного в другой. Но они ведут себя по-разному при компиляции, вот что меня смущает. // Основная программа и все зависимые сборки выполняются на обоих компьютерах, поэтому при необходимости должен присутствовать office.dll или я получаю ошибку ссылки на сборку. –

+1

Вы игнорируете роль GAC, просто посмотрите на нее на обеих машинах, чтобы сравнить. Самое время обновить версию VS vtw, функция «встроить типы взаимодействия», доступная с тех пор, как VS2010/.NET 4.0 является золотым решением этой проблемы. –

ответ

1

Второй комментарий Ханса Пассана к исходному сообщению - ответ.
На компьютере 1 оба файла были зарегистрированы в GAC.
На компьютере 2 их не было, поэтому они были скопированы в выходную папку.
Теперь я должен выяснить, почему они нужны вообще ...

+0

... так что это должно быть отмечено как ответ. – t3chb0t

+1

Я еще не отметил это как ответ, потому что не смог сделать это до 2 дней после ответа, а между тем я просто забыл это сделать. ;-) –

Смежные вопросы