我有一个构建ASP.NET Web应用程序项目的批处理文件,但它没有在Core Compile过程中接收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个丢失的文件。我如何修改我的构建脚本呢?
答案 0 :(得分:3)
%msbuild% "%proj_path%%proj_name%.csproj" /T:Rebuild;Package