在云项目上使用VS2012 "Package“命令时,我得到了一个9mb的.cspkg文件,而当我直接调用azure sdk cspack.exe时,得到的是7mb的文件。在使用命令行时必须忽略一些重要的东西,我将其用于持续构建服务器-我希望有一种比调用cspack.exe更好的方法在构建服务器上打包云项目,以防没有
我在MSBuild结尾处调用的命令(竹子任务)
& cspack "$cloudProject/ServiceDefinition.csdef" "/role:$role;$rolePath" "/rolePropertiesFile:$role;$propertiesFile" "/sites:$role;Web;$rolePath" "/out:CmsBase.Cloud.cspkg" "/generateConfigurationFile:ServiceConfiguration.Cloud.cscfg"当我将7mb包部署到azure时,在调用http://xyz.com/Message/Index时看到的错误是404,其中Message是一个MVC控制器。vs2012中的模拟器和部署按预期工作。
谢谢
发布于 2013-07-28 00:53:31
我认为问题可能出在您的/role论点上。查看http://msdn.microsoft.com/en-us/library/windowsazure/gg432988.aspx页面上的示例,他们没有添加路径,只添加了入口点的DLL的名称。您对/role:$role;$rolePath的使用就是在其中放置了一个路径。如果$role的值与包含角色入口点的程序集名称相同,则改为使用/role:$role;$role来查看结果。
您还可以直接调用Azure SDK工具随MSBuild一起提供的CSPack构建任务。这与您使用package命令时VS调用的任务相同。WindowsAzure.com上有一篇文章描述了这一点:http://www.windowsazure.com/en-us/develop/net/common-tasks/continuous-delivery/#step2。如果您对传递给CSPACK MSBuild任务的参数有疑问,您可以在Tools -> Options > Projects -> Solutions -> Build -> Run下将MSBuild详细信息转换为诊断。然后运行Package命令,查看它被提供的内容。
如果您有兴趣追踪到底有哪些内容没有包含在内,那么可以深入研究生成的cspkg文件。从.cspkg中将它们重命名为.zip并提取内容。在每个文件中,您要部署的每个角色都有一个.cssx文件。将此.cssx文件重命名为.zip,并将其解压缩。现在,您将看到在角色实例启动时将交付给它们的内容。使用诸如winDiff、Beyond Compare等文件比较工具,您应该能够看到两者之间的不同和缺失的文件。这或许能帮助我们找出其中的区别。
https://stackoverflow.com/questions/17897796
复制相似问题