Errore ASPNETCOMPILER ASPCONFIG:Impossibile caricare il file o l'assembly "Microsoft.VisualBasic.Activities.Compiler" o una delle sue dipendenze

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

Domanda

Ho appena aggiornato il mio progetto ad Asp.Net 4, dalla 3.5.Quando la build viene avviata da TeamCity, viene visualizzato il seguente errore:

[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

Ho provato a copiare gli assembly di riferimento del framework .net in C:\Program Files (x86) eference Assemblies\Microsoft\Framework.NETFramework\v4.0 pensando che avrebbe risolto le cose, ma ancora senza fortuna.qualche idea?

È stato utile?

Soluzione 2

Questo errore si aveva a che fare con le librerie di classi nella soluzione riferimento a più vecchio (v3 o v3.5) assemblee di sistema. Quei librerie di classi sono state utilizzate per il mio sito web, in modo che i gruppi di sistema ricevuti copiati nella cartella bin insieme con le librerie di classi. Forse le assemblee di sistema nella directory 3.5 dispongono di autorizzazioni diverse rispetto alla directory 4.0 e quando l'aspnet_compiler cercato di caricarli dalla directory bin, è barfed.

Dopo aver attraversato ogni file csproj e l'aggiornamento dei valori <RequiredTargetFramework> a 4.0, tutto funziona come previsto.

Altri suggerimenti

Per me è stato davvero un disadattamento x86 / x64. Ho risolto specificando il percorso del x64 MSBuild tramite la variabile ambiente MSBuild:

Impostare la variabile d'ambiente MSBuild

ho ottenuto lo stesso errore costruire la .csproj_deploy da VS. Tutti gli altri progetti tra cui il web nella soluzione costruita bene. C'era in realtà questa dll Microsoft.VisualBasic.Activities.Compiler nella mia cartella web bin. Quando ho cliccato soluzione build / pulito, tutti i file contenuti nella cartella ricevuti cancellati tranne questo. Ho cancellato manualmente il file e costruito di nuovo ed è costruito bene. Questa volta, non ho nemmeno vedere questo file nella cartella bin.

si presenta come un x86 / x64 disadattamento - mi piacerebbe vivamente realtà usando il programma di installazione quadro, di hacking copiando i file a mano

Ho trovato la soluzione accettata molto semplice presentata Qui risolto il problema per me, essendo l'installazione di SDK di Windows per .NET Framework 4 (o l'equivalente per la tua versione di Windows).

Tieni presente il commento sulla risposta accettata che dice che "Intellisense e gruppi di riferimento" sono le uniche funzionalità dell'SDK necessarie per risolvere questo problema.

La soluzione semplice che ha funzionato per me è stato quello di modificare la riga TargetFrameworkVersion del file .vbproj. Semplicemente cambiando "v4.0" a "4.0" rimosso tutti gli errori copmiler e fissato i miei problemi di IntelliSense (tag ASP.NET non venivano riconosciuti).

Abbiamo avuto questo errore quando si passa i nostri ambienti di hosting (al nuovo server Web con IIS).

La correzione era:

  • Modificare il pool di applicazioni / Impostazioni avanzate, e insieme a Enable 32 bit applications true, o
  • Elimina tutti gli assembly dalla cartella bin che già appartengono al quadro (per esempio abbiamo avuto System.Data.dll nella nostra cartella bin, che è stato evidentemente costruito per 32b - eliminarlo risolto il problema)

ho scoperto che avevo un riferimento superfluo il dll 'Microsoft.VisualBasic.Activities.Compiler'. Una volta che ho rimosso il riferimento, tutte le cose funzionavano.

Se si sta costruendo un progetto web in x64 in Visual Studio e in esecuzione su IIS Express è necessario attivare la seguente impostazione:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top