AspNetCompilerエラーASPCONFIG:ファイルまたはアセンブリ「Microsoft.VisualBasic.activities.comPiler」またはその依存関係の1つをロードできませんでした

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:プログラムファイル(x86) Reference Assemblies Microsoft Framework.netFramework v4.0にコピーしてみました。何かご意見は?

役に立ちましたか?

解決 2

このエラーは、古い(V3またはV3.5)システムアセンブリを参照するソリューション内のクラスライブラリに関係していました。これらのクラスライブラリは私のウェブサイトで参照されていたため、システムアセンブリはクラスライブラリとともにビンフォルダーにコピーされました。 3.5ディレクトリのシステムアセンブリには、4.0ディレクトリとは異なる権限があり、ASPNET_COMPILERがBINディレクトリからそれらをロードしようとしたとき、それはバーフ化されました。

各csprojファイルを通過して更新した後 <RequiredTargetFramework>4.0, 、すべてが期待どおりに機能しています。

他のヒント

私にとっては、それは確かにx86/x64の不一致でした。 MSBuild環境変数を介してX64 MSBUILDへのパスを指定することで解決しました。

Set the MSBuild environment variable

同じエラーの構築がありました .csproj_deploy vsからソリューション内のWebを含む他のすべてのプロジェクトは正常に構築されました。実際にこれがありました Microsoft.VisualBasic.Activities.Compiler 私のWeb BinフォルダーのDLL。ビルド/クリーンソリューションをクリックすると、これを除いてフォルダー内のすべてのファイルが削除されました。このファイルを手動で削除し、再び構築しました。今回は、このファイルもビンフォルダーに表示されません。

x86/x64の不一致のように見えます - ファイルを手でコピーしてハッキングするよりも、フレームワークインストーラーを実際に使用することを強くお勧めします

非常にシンプルな受け入れられたソリューションが提示されていることがわかりました ここ 私のために問題を修正しました、これは .NETフレームワーク用のWindows SDK 4 (またはWindowsバージョンに相当)。

「Intellisenseと参照アセンブリ」と書かれた受け入れられた回答に関するコメントは、この問題を修正するために必要なSDKの唯一の機能です。

私のために働いた簡単なソリューションは、.vbprojファイルのターゲットフレームワークバージョンラインを変更することでした。 「V4.0」を「4.0」に変更するだけで、すべてのCopmilerエラーが削除され、IntelliSenseの問題が修正されました(ASP.NETタグは認識されていませんでした)。

ホスティング環境を切り替えるときに(IISを使用して新しいWebサーバーに)このエラーが発生しました。

修正は次のとおりです。

  • アプリケーションプール /高度な設定を変更して設定します Enable 32 bit applicationstrue, 、 また
  • すでにフレームワークに属しているビンフォルダーからすべてのアセンブリを削除します(たとえば System.Data.dll 明らかに32B用に構築されたビンフォルダーで、それを削除して問題を修正しました)

'microsoft.visualbasic.activities.compiler' dllに対する不必要な参照があることがわかりました。参照を削除したら、すべてが機能しました。

Visual StudioでX64でWebプロジェクトを構築し、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