我正在使用TFS构建一个包含ASP.NET MVC 3 Web角色的Azure项目。
目前我的构建失败并出现以下错误: -
C:\ Program Files (86)\的MSBuild \微软\云 Service \ 1.0 \ Visual Studio 10.0 \ Microsoft.CloudService.targets(202):找不到部分内容 路径...
在“{AzureProject} \ roles \ {WebRole} \ x64 \”下面有一个名为“WaIISHost.exe.config”的文件的路径。
我已经检查了构建服务器,确实这个文件不存在。实际上,似乎没有创建整个“{webRole} \ x64 \”目录。当我在自己的机器上构建时,也不会创建该目录。我使用向导创建了一个新的Azure项目(还有一个由向导创建的MVC 2 Web角色),并且没有为此创建目录。
Microsoft.CloudService.targets中的第202行似乎正在调用CSPack实用程序 - 可能是尝试打包WebRole进行部署。它期望“... \ x64”目录中的文件并没有找到它们 - 因此构建失败。
尽管“丢失”文件,我可以从我自己的机器上构建和发布。我只在构建服务器上出错。
任何想法为什么“... \ x64”目录 是不是为我的网络角色创建的?
是否可以指示CSPack 不要找这些文件?
什么依赖于CSPack在构建期间完成了它的工作?如果我从.targets文件中删除CSPack调用,会有什么后果吗?
修改
令人意外的日志部分是: -
ModelFile is (TaskId:310)
OutputDirectory is C:\Builds\2\GBC\GBC - CI Build\Binaries\GBC.Web.Azure.csx\ (TaskId:311)
PackRoles is C:\Builds\2\GBC\GBC - CI Build\Sources\GBC\GBC.Web.Azure\obj\Release\GBC.Web.Site\, Name=GBC.Web.Site, EntryPoint=GBC.Web.Site.dll, SourceDir=C:\Builds\2\GBC\GBC - CI Build\Sources\GBC\GBC.Web.Site\ (TaskId:312)
RoleProperties is GBC.Web.Site, EntryPoint=GBC.Web.Site.dll, TargetFrameworkVersion=v4.0 (TaskId:313)
ServiceDefinitionCopy is ServiceDefinition.build.csdef (TaskId:314)
ServiceConfigurationCopy is C:\Builds\2\GBC\GBC - CI Build\Binaries\ServiceConfiguration.cscfg (TaskId:315)
Calling ServicePack (TaskId:316)
Using "CSPack" task from assembly "C:\Program Files (x86)\Windows Azure SDK\v1.4\bin\Microsoft.ServiceHosting.Tools.MSBuildTasks.dll".
Task "CSPack" (TaskId:317)
Searching for imported module Diagnostics at C:\Program Files (x86)\Windows Azure SDK\v1.4\bin\plugins\Diagnostics\Diagnostics.csplugin... (TaskId:317)
Copying 'C:\Builds\2\GBC\GBC - CI Build\Sources\GBC\GBC.Web.Azure\obj\Release\GBC.Web.Site\' to C:\Builds\2\GBC\GBC - CI Build\Binaries\GBC.Web.Azure.csx\roles\GBC.Web.Site\approot... (TaskId:317)
Copying 'C:\Program Files (x86)\Windows Azure SDK\v1.4\bin\runtimes\base\x86' to C:\Builds\2\GBC\GBC - CI Build\Binaries\GBC.Web.Azure.csx\roles\GBC.Web.Site\base\x86... (TaskId:317)
Copying 'C:\Program Files (x86)\Windows Azure SDK\v1.4\bin\runtimes\diagnostics\x86' to C:\Builds\2\GBC\GBC - CI Build\Binaries\GBC.Web.Azure.csx\roles\GBC.Web.Site\diagnostics\x86... (TaskId:317)
C:\Program Files (x86)\MSBuild\Microsoft\Cloud Service\1.0\Visual Studio 10.0\Microsoft.CloudService.targets(202,5): error : Could not find a part of the path 'C:\Builds\2\GBC\GBC - CI Build\Binaries\GBC.Web.Azure.csx\roles\GBC.Web.Site\base\x64\WaIISHost.exe.config'. [C:\Builds\2\GBC\GBC - CI Build\Sources\GBC\GBC.Web.Azure\GBC.Web.Azure.ccproj]
Done executing task "CSPack" -- FAILED. (TaskId:317)
看起来这是CSPack的一个问题 - 它正在从Program Files ... \ bin \ runtimes \ base \ x86复制文件,但不是从... \ x64复制文件,然后它会在目标中找到一些东西...... \ x64目录。可能与CSPack的配置方式有关?绝对看起来创建这些文件不是MSBuild的工作。
答案 0 :(得分:1)
你能提供详细的MSBuild输出并发布它(你的构建类型的选项)吗?
通常在没有创建文件夹时,这是因为配置问题或缺少权限。
MS在分解CSPack here所做的工作方面做得不错。
不确定是否有任何帮助,但至少是一个起点。
答案 1 :(得分:1)
管理修复它。
如果您正在尝试在服务器上构建azure项目,并且您按照以下说明操作: - http://bartwullems.blogspot.com/2011/05/building-azure-solutions-on-your-build.html - 请确保如果您的服务器是64位,则将文件复制到64位机。如果您在64位计算机上安装了32位SDK,它就不会喜欢它了!
或者,您可以使用Web平台安装程序来安装Azure SDK。