Мы пытаемся обновить нашу кодовую базу для использования Visual Studio 2010, но у нас возникают проблемы с сортировкой всего на наших серверах сборки.Мы не хотим устанавливать Visual Studio 2010 на наших серверах сборки и поэтому установили только .Net 4 framework и SDK (v7.1).
Мы все еще хотим ориентироваться на платформу .Net 3.5 (мымы обновим до .Net 4 в будущем, но пока не хотим).
Нам удалось получить код для компиляции, но теперь мы сталкиваемся с ошибками во время выполнения, такими как:
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Проблема в том, что среда выполнения пытается десериализовать встроенный ресурс, и если я смотрю на ресурсы в отражателе, я вижу, что все они являются объектами .Net 4.0.Например, значок нашего приложения для Windows имеет тип System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
.
Так что похоже, что MSBuild неправильно компилирует ресурсы (используя другое время выполнения для цели)?Я подтвердил это, посмотрев diff-файлы dll, построенные на моей машине dev и построенные на сервере сборки - ясно, что ресурсы одной dll используют версию 2.0.0.0, а другая (с сервера сборки) использует 4.0.0.0.Ссылки на проекты в обоих случаях относятся к dll v2.0.0.0 (как и следовало ожидать).
Кто-нибудь знает, почему MSBuild компилирует ресурсы как объекты 4.0?
Заранее спасибо.
Крис