Проблемы с новым сервером сборки
После перемещения моего сервера сборки я получаю следующую ошибку:
C:\Windows\Microsoft.NET\Framework64\v3.5\Microsoft.Common.targets (1682): Could not run the "GenerateResource" task because MSBuild could not create or connect to a task host with runtime "CLR2" and architecture "x64". Please ensure that (1) the requested runtime and/or architecture are available on the machine, and (2) that the required executable "MSBuildTaskHost.exe" exists and can be run.
Моя конфигурация говорит следующее:
<ConfigurationToBuild Include="Release|Any CPU">
<FlavorToBuild>Release</FlavorToBuild>
<PlatformToBuild>Any CPU</PlatformToBuild>
</ConfigurationToBuild>
Что мне не хватает?
Ответы
Ответ 1
В моем случае я получил это сообщение об ошибке при попытке создать решение на 32-разрядной машине Windows 7. Способ разрешить ошибку для меня состоял в том, чтобы щелкнуть правой кнопкой мыши по проекту в VS, выбрать свойства, а затем перейти на вкладку "Сборка". Здесь я изменил "Цель платформы" с "Любой процессор" на "x86". НТН
Ответ 2
Чтобы решить эту проблему, перейдите к .csproj file
и откройте с помощью блокнота.
Добавьте следующую строку в группу свойств по умолчанию:
<PropertyGroup>
<DisableOutOfProcTaskHost>true</DisableOutOfProcTaskHost>
</PropertyGroup>
Теперь проект должен скомпилироваться.
Ответ 3
Другой подход - сделать следующее
Нажмите "Пуск" → > щелкните правой кнопкой мыши "Компьютер" → > "Свойства" → > Дополнительные системные настройки → > нажмите кнопку "Переменные среды", чтобы открыть диалоговое окно,
то в разделе "Системные переменные" нажмите кнопку "Создать...", введите
Имя переменной = DISABLEOUTOFPROCTASKHOST и введите значение переменной = 1,
затем нажмите "ОК".
Это должно подавить эту ошибку.
Ответ 4
Вам нужно установить .NET SDK для используемой версии .NET.
Вот ссылка для .NET 3.5
Где находится .net 3.5 SDK?
и вот ссылка для 4.0
http://www.microsoft.com/en-us/download/details.aspx?id=8279
Установка Visual Studio также установит правильный SDK, но не может быть хорошим вариантом для вас.
Я надеюсь, что это поможет.
Ответ 5
Основная проблема заключается в том, что 64-разрядный исполняемый файл не может загрузить 32-разрядную dll и наоборот.
"Авто" означает это .NET собирается переключиться на время выполнения между платформами, в зависимости от того, какая платформа находится на компьютере, в котором он работает.
Так что сборка .NET, скомпилированная с "Авто", загружает 32-разрядную DLL, это проблема, ожидающая появления, и это то, о чем эта ошибка.
Чтобы исправить это, если вы НЕ используете какие-либо родные DLL, перейдите к свойствам проекта для каждого управляемого проекта и установите "целевой процессор" таким же, как выбранный в настоящий момент "Платформа", для всех доступных платформ.
Если вы используете собственные DLL, вам нужно определить 2 конфигурации сборки для 32 бит и одну для 64 бит, ссылку (см.) правильные версии DLL и установить в соответствии с целевой компьютерной платформой.
Ответ 6
Я решил эту проблему, открыв VS2010 в качестве администратора.