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 框架参考程序集复制到 C:\Program Files (x86) eference Assemblies\Microsoft\Framework.NETFramework\v4.0 ,认为这可以解决问题,但仍然没有运气。有什么想法吗?

有帮助吗?

解决方案 2

此错误有与溶液中的类库引用较旧的(V3或V3.5)系统组件做。这些类库是由我的网站引用,所以系统组件得到了与该类库一起复制到bin文件夹。也许在3.5目录的系统组件具有比4.0目录不同的权限,并且当aspnet_compiler试图从bin目录加载它们,它barfed。

通过每个的csproj文件准备和更新<RequiredTargetFramework>4.0之后,一切都按预期方式工作。

其他提示

有关我它的确是在x86 / x64失配。我解决它通过所述的MSBuild环境变量指定路径64的MSBuild:

“设置的MSBuild环境变量”

我得到了同样的错误构建从VS.的.csproj_deploy所有其他项目,包括在溶液中建立了良好的网络。有其实在我的网站bin文件夹这个Microsoft.VisualBasic.Activities.Compiler DLL。当我点击编译/清洁解决方案,该文件夹中的所有文件已经除非这个删除。我手动删除该文件,并重新建造,并建立了良好的。 这一次,我甚至不看这个文件中的bin文件夹。

看起来像在x86 / x64不匹配 - 我强烈建议实际使用框架安装程序,不是由手工复制文件盗号的

我发现提出的非常简单的可接受的解决方案 这里 为我解决了这个问题,这是安装 适用于 .NET Framework 4 的 Windows SDK (或您的 Windows 版本的同等版本)。

请注意对已接受答案的评论,其中指出“智能感知和参考程序集”是解决此问题所需的 SDK 的唯一功能。

这对于我工作简单的解决方案是修改.vbproj文件的TargetFrameworkVersion线。简单地改变“V4.0”到“4.0”删除所有copmiler错误的和固定我的智能感知问题(asp.net标签被不被认可)。

我们在切换托管环境(使用 IIS 的新 Web 服务器)时遇到此错误。

修复方法是:

  • 更改应用程序池/高级设置,然后设置 Enable 32 bit applicationstrue, , 或者
  • 从 bin 文件夹中删除已属于框架的所有程序集(例如我们有 System.Data.dll 在我们的 bin 文件夹中,该文件夹显然是为 32b 构建的 - 删除它可以解决问题)

我发现我不得不以“Microsoft.VisualBasic.Activities.Compiler” DLL不必要的参考。一旦我删除了参考,所有的东西的工作。

如果您是在Visual Studio 64构建的网络项目,并在IIS快递运行,你必须启用以下设置:

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