Размер DLL отличается при построении в отдельных решениях - PullRequest
1 голос
/ 10 февраля 2012

У меня есть два приложения, разработанные в VS2010 (C #, .NET 4.0) - каждое представляет собой отдельное решение с 2 проектами, один для элементов приложения, плюс проект для разделяемой библиотеки, которая создает DLL.

Моя проблема заключается в том, что при сборке этой библиотеки DLL в одной из сборок она на 16384 байта (0x4000) больше, чем должна быть.Эта разница в размере одинакова для сборок Debug и Release.Когда правильная версия находится в ClearCase, я получаю точно такой же результат с копией на диске C :, так что это не похоже на спецификацию конфигурации или проблему, связанную с представлением.

просмотрел настройки VS, полностью удалил папки bin / obj для принудительной полной перестройки, использовал WinMerge для сравнения всех файлов / папок, но все безуспешно.

Используя dumpbin, я вижу в заголовке clrразница в размере 0x3F20 для каталога ресурсов.Я подозреваю, что оставшийся 0xE0 относится к выравниванию секций в DLL.

На данный момент я в тупике.Любые предложения о том, что может быть причиной этого или какие шаги для дальнейшего расследования ???

РЕДАКТИРОВАТЬ:

Может быть, я не очень хорошо описал решение VS -Решение имеет 2 проекта.Общая библиотека просто добавляется в решение через Add-> Existing Project.Оба проекта затем строятся при выборе Build-> Rebuild Solution.

Re.Комментарий Ганса, это проблема с точки зрения управления конфигурацией / доверия.Если исходный код / ​​файлы проекта не изменились, единственное, что я ожидал бы изменить в DLL, - это какие-либо подробности времени / версии сборки, а не дельта 15 КБ, как у меня.

1 Ответ

2 голосов
/ 13 февраля 2012

Проблема была в файле .suo (Solution User Options), который, должно быть, был поврежден (и, к сожалению, помещен и поддержан под контролем версий предыдущими пользователями).К счастью, кажется, что при удалении этого файла ничего не теряется.

Немного больше информации о файлах .suo можно найти в вопросе SO Почему существуют файлы sln, suo и csproj?

Цитата из Настройки отладчика. Добавить в Visual Studio - легко копировать точки останова между компьютерами. хорошо подводит итог:

Файл .SUOпроклятие твоего существования.Почти все проблемы, с которыми вы сталкиваетесь в Visual Studio, являются результатом поврежденного файла .SUO.К сожалению, кажется, что все, что нужно, чтобы повредить файл .SUO, бьется у вас на сердце.Другими словами, всякий раз, когда у вас происходит сбой Visual Studio, отказываются отлаживать или ведут себя странно, это ошибка файла .SUO.Всякий раз, когда кто-то спрашивает меня о странном поведении Visual Studio, я мгновенно отвечаю: «Удалить .SUO!»Когда дело доходит до гигиены Visual Studio, удаление файла .SUO прямо там с раком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...