2014-06-04 2 views
7

Я работаю над преобразованием определения сборки tfs 2013, изначально мы использовали tfs 2008. У меня есть новый сервер с установленным TFS2013 и работа над определением Build для 2013 xaml (workflow) завершена. Однако я столкнулся с ошибкой, когда мой TFS построил в режиме выпуска для конфигурации Any Cpu, но это прекрасно, когда я использую режим отладки. Я пробовал искать много статей и не мог найти какое-либо решение, любезно помогу мне здесь. Это нормально на моей локальной машине, но происходит только на сервере.VS 2010, TFS 2013 SGEN: Была сделана попытка загрузить сборку с неправильным форматом

проекта и детали

1) проект рамки .net 4,0

2) Конфигурация по умолчанию "Любой Cpu"

3) TFS 2013 сервер 64 бит, Windows Server 2008 r2

Сложение Определение

Конфигурация: Любой процессор | Выпуск

MsBuildPlatform: x86

Ошибка: SGEN: Была сделана попытка загрузить сборку с неправильным форматом: C: \ Windows \ Microsoft.Net \ сборка \ GAC_64 \ System.Data \ v4.0_4.0.0.0__b77a5c561934e089 \ System.Data.dll.

Предупреждение: C: \ Program Files (x86) \ MSBuild \ 12.0 \ Bin \ Microsoft.Common.CurrentVersion.targets (990): Опорные сборки для рамок».NETFramework, Version = v4.0" не были найдены. Чтобы решить эту проблему, установите пакет SDK или Targeting Pack для этой версии фреймворка или перенастройте приложение на версию фреймворка, для которого установлен пакет SDK или Targeting Pack. Обратите внимание, что сборки будут решены из глобального сборочного кэша (GAC) и будут использоваться вместо ссылочных сборок. Поэтому ваша сборка может быть неправильно нацелена на структуру, которую вы планируете использовать.

Я установил Windos 8 SDK (инструменты только) и рамки для Windows 4 x64 в x86 версии не удается

папке C: \ Program Files \ Microsoft SDKs \ Windows имеет папку, v7.0 C: \ Программные файлы (x86) \ Microsoft SDK \ Windows имеют v8.1А папка

где, как моя локальная машина имеет много версий внутри папки окон в выше пути

Список соответствующих статей, которые я проверил, но не смог найти решение

http://seravy.wordpress.com/2012/10/25/installing-net-4-5-and-not-windows-sdk-8/

http://blogs.msdn.com/b/windowssdk/archive/2009/09/16/windows-7-sdk-setup-common-installation-issues-and-fixes.aspx

Running MSBuild fails to read SDKToolsPath

http://dukelupus.wordpress.com/2008/02/05/task-failed-because-sgenexe-was-not-found-solution/

How do I fix the Visual Studio compile error, "mismatch between processor architecture"?

TFS 2010 creating .Net 4.0 XmlSerializers DLL for .Net 3.5 Application

Так что я должен сделать, чтобы исправить эту ошибку?

ответ

0

Я не хочу отвечать, потому что вы говорите, что уже сделали это, но каждый раз, когда я боролся с сообщением об ошибке, которое вы цитируете, это была настройка MsBuildPlatform. Абсолютно необходимо установить значение «X86». Вы уверены, что настройка установлена.?

+0

Но я не хочу использовать x86 для сборки моей dll, и вместо этого я хочу, чтобы это был любой процессор. Поэтому мое решение по умолчанию указывает на Release-Any CPu. Является ли какое-либо конкретное место, где вы указываете, что мне нужно проверить? Чтобы добавить заметку, мой сервер TFS x64 – Dilip

2

Это не очень хороший ответ (но в случае, если кто-то сталкивается с ним, как я), и не дает понять, почему он происходит. Но выключение «Сгенерировать сборку сериализации» в нарушающем проекте позволяет строить сборку в моем случае.

Время запуска будет медленнее, так как теперь сериализация произойдет во время выполнения.

4

Вам необходимо установить пакеты таргетинга (например, SDK, aka Developer pack) для платформы .NET Framework, на которую вы нацеливаете. Вы можете скачать их все из http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx

В частности, для вашего вопроса и ориентации .NET Framework 4.0 вы хотите Windows SDK for Windows 7 and .NET Framework 4 Похоже, что вы захватили SDK Windows 8, чего вы не хотите использовать для таргетинга .NET Framework 4.0.

1

Вам просто нужно посмотреть, какие рамки вы используете, а затем какой режим отладки вы используете. В моем случае я использовал фреймворк framework 4.0 и Build mode «любой процессор», но после поиска я обнаружил, что мне нужно обновить мою инфраструктуру .NET с 4.0 до 4.5, и мне нужно построить свое решение с «любого процессора» до x86, потому что у меня был SPI Windows 7 с архитектурой x86.

Вот некоторые изображения, которые я сделал для решения этой ошибки. enter image description here enter image description here

1

я встретил эту ошибку (хотя для новой платформы .NET версии, v4.5.1, не v4.0, как и в первоначальном вопросе) при попытке построить мое приложение на сервере сборки.

Сочетание двух следующих условий несет ответственность за ошибки:

  1. В Visual Studio, на странице Свойства проекта на вкладке Application, «целевой каркас» был установлен на».NET Framework 4.5.1" ;
  2. На сервере сборки в папке C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework папка с именем v4.5.1 была не настоящее время. (Другие папки с номерами версий, включая v3.5, v4.0 и v4.5, были настоящее.)

Это недостающее папка была причиной «Справочной сборок для рамок ... не были найдены» предупреждение, которое в свою очередь может привести к ошибке «сборка с неправильным форматом».

Исправление должно было установить Windows Software Development Kit (SDK) for Windows 8.1 на сервер сборки. В мастере установки в шаге «Выберите функции, которые вы хотите установить» я снял флажки без полей, кроме одного для «.NET Framework 4.5.1 Software Development Kit».

Запуск этой установки вызвал отсутствующую папку v4.5.1 в папке Reference Assemblies \ Microsoft \ Framework.NETFramework, и сборка будет успешно запущена.

+1

Очень похожая проблема здесь, за исключением того, что таргетинг на рамочную версию - 4.5.2. Используя приведенный выше совет Джона и найдите соответствующий пакет разработчика (для 4.5.2 его здесь: https://www.microsoft.com/en-us/download/details.aspx?id=42637) и установите его на нашем сервере сборки , это фиксировало нашу ошибку. –