Мы кодируем в C #, используя VS2008 SP1. У нас есть сервер, на котором работает Team System Server 2008, который мы используем для управления исходным кодом, задач и т. Д. server также является нашей машиной для сборки Team Build . Это работало очень хорошо в течение долгого времени. До сих пор. Мы получаем эти сообщения об ошибках при попытке построить один из наших проектов, который имеет ссылку на одну внешнюю сборку (это происходит как через Team Build, так и при ведении журнала на физически и делать обычную сборку через Visual Studio):
C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets
: предупреждение MSB3246: Разрешенный файл имеет
плохое изображение, нет метаданных или
в противном случае недоступен. Не мог загрузить
файл или сборка 'C: \ Program
Файлы \ Syncfusion \ Essential
Студия \ 7.1.0.21 \ Сборки \ 3.5 \ Syncfusion.XlsIO.Base.dll»
или одна из его зависимостей. Модуль
должен был содержать сборку
манифест.
C: \ Program
Файлы \ MSBuild \ Microsoft \ VisualStudio \ v9.0 \ ReportingServices \ Microsoft.ReportingServices.targets (24,2):
ошибка MSB4062:
Задача «Microsoft.Reporting.RdlCompile»
не удалось загрузить из сборки
Microsoft.ReportViewer.Common,
Версия = 9.0.0.0, Культура = нейтральная,
PublicKeyToken = b03f5f7f11d50a3a. Мог
не загружать файл или сборку
«Microsoft.ReportViewer.Common,
Версия = 9.0.0.0, Культура = нейтральная,
PublicKeyToken = b03f5f7f11d50a3a 'или
одна из его зависимостей. Модуль
должен был содержать сборку
манифест. Подтвердите, что
декларация верна, и что
сборка и все ее зависимости
имеется.
Ссылочный компонент
«Syncfusion.XlsIO.Base» не может быть
найдено.
Эти ошибки относятся к одному проекту с одной проблемной ссылкой на сборку. Когда я пытаюсь создать полное решение, из-за этого возникает, конечно, много ошибок. И есть два других проекта, которые имеют ту же проблему с другими ссылками на сборки. У меня есть список ссылочных сборок, которые VS не может решить:
- Microsoft.ReportViewer.Common
- Microsoft.ReportViewer.WinForms
- Syncfusion.Compression.Base
- Syncfusion.Core
- Syncfusion.XlsIO.Base
Сборки Syncfusion относятся к сторонним пакетам компонентов. Два других связаны с компонентом Microsoft ReportViewer.
Ссылки были добавлены через окно Добавить ссылку на вкладке .NET, поэтому я не думаю, что в этом есть что-то подозрительное. В окне свойств для ссылки на сборку нет значения в Культура, Описание, Путь, Версия во время выполнения или Строгое имя. Версия сообщает 0.0.0.0, а Resolved - False. Я думаю, это довольно очевидно, что VS не может разрешить ссылку. Мой вопрос почему ??? Я много почесал голову над этим. Это происходит только на сервере, решение прекрасно работает как на моей машине, так и на моей коллеге. Справочные свойства сборки хороши на наших машинах.
Я попытался удалить сторонний компонент (на сервере, конечно), а затем переустановить его снова. Не помогло Я пытался восстановить VS2008 . Не помогло Попытался извлечь более раннюю версию из управления исходным кодом (я знаю, что раньше на нем был buildt на сервере), и я получил те же сообщения об ошибках. Я проверил права доступа к файлу , и все, кажется, в порядке. У меня заканчиваются идеи ...
Как мне это решить?
Обновление 16.02.2009:
Я попытался сравнить вывод ildasm DLL на моем компьютере и на сервере (см. Комментарий, который я написал об этом), и есть одна небольшая разница в строке, которая мне кажется комментарием , Должен признать, что я вообще не понимаю, почему вообще есть такая разница, поэтому, может быть, кто-нибудь мне это объяснит?
Я также попытался запустить антивирусную проверку на сервере. Не помогло Пытался удалить ссылку , а затем readd , перейдя к dll на диске. Не сработало
Обновление 17.03.2009:
Я нашел решение! Виновником был модуль TruPrevent от Panda Antivirus . После отключения модуля все работает! =) * * Тысяча восемьдесят-два
Я обнаружил это с помощью fuslogvw.exe и созданного им журнала. Погуглил результат и наткнулся на эту запись в блоге. . Надеюсь, что это может помочь кому-то еще.