ASP.NET Web アプリケーション プロジェクトをビルドするバッチ ファイルがありますが、コア コンパイル プロセスで Entity Framework リソース ファイルを取り込んでいません。
ビルド スクリプトは次のとおりです。
set proj_name=MyProject
set proj_path=C:\...\path-to-project\
set pkg_name=MyProject.zip
set build_config=Release
set platform=AnyCPU
set msbuild=%windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
%msbuild% "%proj_path%%proj_name%.csproj" /t:package /p:OutPath="%proj_path%obj" /p:OutputPath="%proj_path%bin" /p:Configuration=%build_config% /p:Platform=%platform%
スクリプトはエラーなしで完了しますが、Web アプリはUnable to load the specified metadata resource
エラーでクラッシュします。
しかし、 を実行するVisual Studio Publish
と、すべて正常に動作します。そのため、ビルド出力を調べる必要があります。
Visual Studio Publish
出力とビルド スクリプトの出力を慎重に比較したところ、ビルド スクリプトの出力に とCoreCompile
ファイルcsdi
が見つからないことがわかりました。ただし、ファイルはファイル システム上にあり、 および の一部です。そのため、ビルド中にそれらが含まれていない理由がわかりません。以下は、ビルド出力の一部です。msl
ssdl
Solution
Project
Visual Studio 発行出力:
/debug:pdbonly /optimize+ /out:obj\Release\Dnr.MotorPool.dll
/resource:obj\Release\edmxResourcesToEmbed\DataAccess\MyDataModel.csdl,DataAccess.MyDataModel.csdl
/resource:obj\Release\edmxResourcesToEmbed\DataAccess\MyDataModel.msl,DataAccess.MyDataModel.msl
/resource:obj\Release\edmxResourcesToEmbed\DataAccess\MyDataModel.ssdl,DataAccess.MyDataModel.ssdl
/target:library
/utf8output all the cs files...
私のビルドスクリプトの出力:
/debug:pdbonly /optimize+ /out:obj\Release\Dnr.MotorPool.dll
/target:library
/utf8output all the cs files...
明らかに、3 つの欠落ファイルがあります。ビルドスクリプトを変更するにはどうすればよいですか?