2

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が見つからないことがわかりました。ただし、ファイルはファイル システム上にあり、 および の一部です。そのため、ビルド中にそれらが含まれていない理由がわかりません。以下は、ビルド出力の一部です。mslssdlSolutionProject

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 つの欠落ファイルがあります。ビルドスクリプトを変更するにはどうすればよいですか?

4

1 に答える 1

3
%msbuild% "%proj_path%%proj_name%.csproj" /T:Rebuild;Package
于 2012-12-10T19:43:01.817 に答える