erreur ASPNETCOMPILER ASPCONFIG: Impossible de charger le fichier ou l'assembly « Microsoft.VisualBasic.Activities.Compiler » ou une de ses dépendances
-
27-09-2019 - |
Question
Je viens de mettre mon projet à Asp.Net 4, de 3,5. Lorsque les coups de pied de construction hors de TeamCity, je reçois l'erreur suivante:
[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
J'ai essayé de copier les ensembles de référence du framework .NET C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ pensée v4.0 qui arranger les choses, mais toujours pas de chance. Toute pensée?
La solution 2
Cette erreur a dû faire avec les bibliothèques de classe dans la solution de référencement ancien (v3 ou v3.5) ensembles de système. Ces bibliothèques de classes ont été référencées par mon site Web, de sorte que les ensembles du système se sont copiés dans le dossier bin ainsi que les bibliothèques de classes. Peut-être que les ensembles de système dans le répertoire 3.5 ont des autorisations que le répertoire 4.0 et lorsque le aspnet_compiler a essayé de les charger à partir du répertoire bin, il barfed.
Après avoir traversé chaque fichier csproj et mettre à jour les valeurs de <RequiredTargetFramework>
à 4.0
, tout fonctionne comme prévu.
Autres conseils
Pour moi, il était en effet un décalage x86 / x64. Je l'ai résolu en spécifiant le chemin du MSBuild x64 par la variable d'environnement MSBuild:
Je suis la même erreur de construction du .csproj_deploy
VS. Tous les autres projets, y compris le Web dans la solution construite fin. Il y avait en fait cette dll Microsoft.VisualBasic.Activities.Compiler
dans mon dossier bin web. Quand je clique sur la solution de construction / propre, tous les fichiers dans le dossier a été supprimé sauf cela. J'ai supprimé manuellement ce fichier et rebâtie et bien construit.
Cette fois-ci, je ne vois même pas ce fichier dans le dossier bin.
On dirait un x86 / x64 non-concordance - Je recommande fortement d'utiliser effectivement le programme d'installation-cadre, que le piratage en copiant les fichiers manuellement
J'ai trouvé la solution acceptée très simple présenté résolu le problème pour moi, ce qui est d'installer le
La solution simple qui a fonctionné pour moi était de modifier la ligne TargetFrameworkVersion du fichier .vbproj. Il suffit de changer « v4.0 » à « 4.0 » retiré toutes les erreurs de copmiler et fixé mes problèmes de IntelliSense (balises asp.net ne sont pas reconnus).
Nous avons eu cette erreur lors du passage de nos environnements d'hébergement (sur le nouveau serveur Web avec IIS).
Le correctif était:
- Modifiez le pool d'applications / Paramètres avancés, et ensemble
Enable 32 bit applications
àtrue
, ou - Supprimer tous les ensembles du dossier bin déjà appartiennent au cadre (par exemple, nous avions
System.Data.dll
dans notre dossier bin, qui était évidemment construit pour 32b - supprimer résolu le problème)
Je trouve que j'avais une référence inutile à la dll « Microsoft.VisualBasic.Activities.Compiler ». Une fois que je l'ai enlevé la référence, toutes les choses ont fonctionné.
Si vous construisez un projet web en 64 bits dans Visual Studio et en cours d'exécution sur IIS Express doit activer le paramètre suivant:
Tools --> Options --> Projects & Solutions --> Web Projects --> Use the 64 bit version of IIS Express for web sites and projects