Ошибка ASPNETCOMPILER ASPCONFIG:Не удалось загрузить файл или сборку "Microsoft.VisualBasic.Activities.Compiler" или одну из его зависимостей

StackOverflow https://stackoverflow.com/questions/3055633

Вопрос

Я только что обновил свой проект с 3.5 до Asp.Net 4.Когда сборка запускается из TeamCity, я получаю следующую ошибку:

[Project "Website.metaproj" (Rebuild target(s)):] C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v /Website -p Website\ -u -f PrecompiledWeb\Website\
[12:11:50]: [Project "Website.metaproj" (Rebuild target(s)):] ASPNETCOMPILER error ASPCONFIG: Could not load file or assembly 'Microsoft.VisualBasic.Activities.Compiler' or one of its dependencies. An attempt was made to load a program with an incorrect format.
[12:11:50]: MSBuild output:
[12:11:50]: Copying file from "C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\Dependencies\wnvxls.dll" to "Website\\Bin\wnvxls.dll".
[12:11:50]: Copying file from "C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\Dependencies\wnvxls.xml" to "Website\\Bin\wnvxls.xml".
[12:11:50]: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v /Website -p Website\ -u -f PrecompiledWeb\Website\
[12:11:50]: ASPNETCOMPILER : error ASPCONFIG: Could not load file or assembly 'Microsoft.VisualBasic.Activities.Compiler' or one of its dependencies. An attempt was made to load a program with an incorrect format. [C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\Website.metaproj]
[12:11:50]: Done Building Project "C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\Website.metaproj" (Rebuild target(s)) -- FAILED.
[12:11:50]: Done Building Project "C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\MyProject.sln" (Rebuild target(s)) -- FAILED.
[12:11:50]: Done Building Project "C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\MyProject.sln.teamcity.patch.tcprojx" (TeamCity_Generated_Build;TeamCity_Generated_NUnitTests target(s)) -- FAILED.
[12:11:50]: Build FAILED.
[12:11:50]: "C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\MyProject.sln.teamcity.patch.tcprojx" (TeamCity_Generated_Build;TeamCity_Generated_NUnitTests target) (1) ->
[12:11:50]: "C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\MyProject.sln" (Rebuild target) (2) ->
[12:11:50]: "C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\Website.metaproj" (Rebuild target) (3) ->
[12:11:50]: "C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\MyProject.Other\MyProject.Other.csproj" (Rebuild target) (5) ->
[12:11:50]: (CoreCompile target) ->
[12:11:50]: Helpers\ProgramHelper.cs(40,21): warning CS0168: The variable 'ex' is declared but never used [C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\MyProject.Other\MyProject.Other.csproj]
[12:11:50]: "C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\MyProject.sln.teamcity.patch.tcprojx" (TeamCity_Generated_Build;TeamCity_Generated_NUnitTests target) (1) ->
[12:11:50]: "C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\MyProject.sln" (Rebuild target) (2) ->
[12:11:50]: "C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\Website.metaproj" (Rebuild target) (3) ->
[12:11:50]: (Rebuild target) ->
[12:11:50]: ASPNETCOMPILER : error ASPCONFIG: Could not load file or assembly 'Microsoft.VisualBasic.Activities.Compiler' or one of its dependencies. An attempt was made to load a program with an incorrect format. [C:\Program Files\TeamCity\buildAgent\work\8bbb8fc03bd91944\Website.metaproj]
[12:11:50]: 1 Warning(s)
[12:11:50]: 1 Error(s)
[12:11:50]: Time Elapsed 00:00:31.48

Я попытался скопировать ссылочные сборки .net Framework в C:\Program Files (x86) eference Assemblies \ Microsoft \ Framework.NetFramework \ v4.0, думая, что это все исправит, но по-прежнему безуспешно.Есть какие-нибудь мысли?

Это было полезно?

Решение 2

Эта ошибка пришлось сделать с библиотеками классов в решении, ссылающихся на более старые (V3 или V3.5) системные сборки. Эти библиотеки классов были ссылаются на мой сайт, поэтому системные сборки были скопированы в папку Bin вместе с библиотеками классов. Может быть, системные сборки в каталоге 3.5 имеют разные разрешения, чем каталог 4.0, и когда ASPNET_COMPILER пытался загрузить их из каталога Bin, оно избавляется.

После прохождения каждого файла CSPROJ и обновление <RequiredTargetFramework> ценности 4.0, все работает, как ожидалось.

Другие советы

Для меня это было действительно несоответствие X86 / X64. Я решил его, указав путь к MSBuild X64 через переменную среды MSBuild:

Set the MSBuild environment variable

Я получил ту же ошибку, наращивающую .csproj_deploy от против Все остальные проекты, включая Интернет в решении, построенные в порядке. На самом деле это было Microsoft.VisualBasic.Activities.Compiler DLL в моей папке веб-бен. Когда я нажимал решение Build / Clean, все файлы в папке были удалены, кроме этого. Я вручную удалил этот файл и построил снова, и он построил штраф. На этот раз я даже не вижу этот файл в папке Bin.

Похоже, несоответствие X86 / X64 - я настоятельно рекомендую фактически использовать установщик Framework, чем взлом его, скопировав файлы вручную

Я нашел представленное очень простое общепринятое решение здесь исправлена проблема для меня, заключающаяся в установке Windows SDK для .NET Framework 4 (или эквивалент для вашей версии Windows).

Обратите внимание на комментарий к принятому ответу, в котором говорится, что "Intellisense и ссылочные сборки" являются единственными функциями SDK, необходимыми для устранения этой проблемы.

Простое решение, которое сработало для меня, было изменение линии TargetFrameWersionVersionVersion файла .vbproj. Просто изменение «V4.0» на «4.0» удалили все ошибки Copmiler и исправлены мои вопросы Intellisense (теги ASP.NET не были распознаны).

У нас возникла эта ошибка при переключении наших сред хостинга (на новый веб-сервер с IIS).

Решение заключалось в следующем:

  • Либо измените пул приложений / Дополнительные настройки, а также установите Enable 32 bit applications Для true, или
  • Удалите все сборки из папки bin, которые уже принадлежат платформе (напримеру нас было System.Data.dll в нашей папке bin, которая, очевидно, была создана для 32b - удаление ее устранило проблему)

Я обнаружил, что у меня была ненужная ссылка на DLL «Microsoft.visualBasic.activities.compiler». Как только я удалил ссылку, все работало.

Если вы строите веб-проект в X64 в Visual Studio и запустите на IIS Express, вы должны включить следующую настройку:

Tools --> Options --> Projects & Solutions --> Web Projects --> Use the 64 bit version of IIS Express for web sites and projects

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top