Проект установки Visual Studio 2010 - два или более объекта имеют одинаковое целевое расположение - PullRequest
3 голосов
/ 20 апреля 2011

Я пытаюсь развернуть некоторые сторонние DLLS в папке GAC клиентских машин, чтобы уменьшить размер установки моих приложений ... проблема, с которой я сталкиваюсь, - когда я запускаю установщик на клиентских машинах, я получаю ошибку .. Ошибка записи в файл: xxxx.dll. Убедитесь, что у вас есть доступ к этому каталогу "... Я случайно обнаружил, что эта ошибка означает ... дубликаты файлов в пакете развертывания.

В моем проекте установки VS2010 при просмотре сведений о специальной папке «Global Cache Folder» я вижу некоторые элементы, подчеркнутые красным, которые являются дублирующимися именами, однако в файлах проекта присутствует только один из каждого dll ... не дублируется.

Я полагаю, что некоторые библиотеки DLL зависят от каждой другой ... как удалить дубликаты, не удаляя библиотеки DLL из проекта?

Я попробовал «щелкнуть правой кнопкой мыши» на одном из подчеркиваний элементов и нажать «Удалить», но это полностью удаляет DLL из моего проекта.

Я нашел похожий вопрос здесь , но это не помогает.

Вот как я создаю свой проект установки

  1. Создание нового проекта установки VS2010
  2. Добавление специальной папки (папки глобального кэша сборок) в «Файловую систему». на целевой машине "
  3. Щелкните правой кнопкой мыши папку Global Assembly Cache Folder и выберите «Добавить» Файл "
  4. Выберите мои несколько DLLS
  5. Сборка проекта

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

Нашли решение ... просто исключите элементы в папке зависимостей.

1 голос
/ 17 мая 2011

Я столкнулся с той же проблемой при создании нескольких модулей слияния и последующем присоединении их к другим проектам развертывания: одни и те же файлы обнаруженных зависимостей для сборок в модулях слияния заканчивали конфликтом с «два или более объектов имеют одинаковое расположение»message.

Чтобы решить эту проблему, я открыл файлы * .vdproj в текстовом редакторе и убедился, что каждый модуль слияния использует свое имя свойства для [TARGETDIR] (папка перезагружаемого модуля).Обычно это было ранее [NEWRETARGETABLEPROPERTY1] - появится предупреждающее сообщение.

...