0

有几个答案(例如thisthis)和一篇博客文章指出了如何安装 Visual C++ 2010 可再发行包作为 Azure 云服务部署的一部分。

首先,将 vcredist_x64.exe 添加到 Web 项目,并将其“复制到输出目录”属性设置为“如果较新则复制”或“始终复制”。然后你对包含单行的命令文件(在我的例子中是“InstallVC.cmd”)执行相同的操作:

vcredist_x64.exe /q /norestart

然后编辑 ServiceDefinition.csdef 文件以包含设置

<Startup>
  <Task commandLine="InstallVC.cmd" executionContext="elevated" taskType="simple" />
</Startup>

角色内。答案和博客文章继续指出,如果将 ServiceConfiguration.csfg 上的 osFamily 设置设置为 osFamily="1" 并且需要将其设置为 osFamily="2",则启动任务将挂起.

我的设置为 osFamily="4",但部署失败。我收到错误消息Role has encountered an error and has stopped. Application startup task failed with exit code 5100

作为使用更新的 Azure OS 系列部署 Azure 云服务的一部分,如何安装 Visual C++ 2010 可再发行包?

4

1 回答 1

0

它失败了,因为 Azure 云服务映像已经安装了更新版本的 Visual C++ 可再发行包,因此我不需要安装另一个。让我误以为我确实需要它的原因是我使用的 DLL 无法加载其依赖项(如下面的Dependency Walker截图所示)。但未能找到依赖项并不是因为缺少 Visual C++ 可再发行包,而是因为我引用了调试版本(例如MSVCP120D.DLLnot MSVCP120.DLL)。切换到“发布”为我解决了缺少依赖项的问题,无需任何 Azure 部署启动任务。

依赖步行者

于 2015-01-29T16:15:32.140 回答