关于“找不到附属汇编 Microsoft.VC90.CRT,上一个错误是 参照的汇编没有安装在系统上。”的解决
一个项目需要在Win系统用计划任务执行PHP,写了个批处理bat利用php-cgi.exe进行执行PHP文件,由于在服务器运行为了不影响服务器既有的PHP配置信息,同时也是考虑未来的移植性还有性能问题,自己弄了个精简了的PHP运行环境。
可在Win下死活也是执行不了,运行批处理直接闪一下就啥都木有咧,于是为了看具体的状态,使用cmd命令行模式去运行批处理文件,结果提示“系统无法执行指定的程序。”,悲催了,难道朋友将服务器给阉割导致不能执行.bat文件?
正咬牙切齿的时候决定再尝试一下确定到底是什么问题。这一次直接在cmd中执行php,运行php.exe -c php.ini -i(指定同php.exe相同目录下的php.ini作为php的配置文件,并且显示phpinfo信息),回车后,竟然还是那句该死的“系统无法执行指定的程序。”,看来不是系统运行不了bat批处理,是干脆不能执行php.exe,咋回事捏?
再次尝试寻找问题的症结,这次尝试在cmd运行服务器原有的php.exe,奇迹出现了,竟然可以正常执行并且返回了phpinfo信息。这下看来应该是我自己所谓的精简的问题,有点晕~~
纠结的时候突然想到,服务器运行的是PHP 5.2.x版本,而我自己打包的是PHP 5.3.x,貌似是用VC9编译的,而php 5.2是用VC6编译的,看来应该是服务器没有安装Microsoft Visual C++运行库导致的,这只是一个初步想法,为了保险尝试看看系统日志有没有留下啥鸟东西(一般微软自家的东西出错了都会老实的写日志的)。
在系统日志中发现了来源均为“SideBySide”,事件ID一个:32,两个59。
事件ID为32的描述是这样的:找不到附属汇编 Microsoft.VC90.CRT,上一个错误是 参照的汇编没有安装在系统上。
事件ID为59的描述是这样的:Resolve Partial Assembly 为 Microsoft.VC90.CRT 失败。 参考错误消息: 参照的汇编没有安装在系统上。
另一个事件ID为59的描述是:Generate Activation Context 为 E:\***\php.exe 失败。 参考错误消息: 参照的汇编没有安装在系统上。
哈哈,看来问题原因找到了,就是因为缺少VC9的运行库,老实的去微软找:http://download.microsoft.com/download/9/7/7/977B481A-7BA6-4E30-AC40-ED51EB2028F2/vcredist_x86.exe,下载回来vcredist_x86.exe(Microsoft Visual C++ 2008 Redistributable 9.0.30729.4148)安装,再次执行php.exe成功了^_^
这就是整个解决问题的过程。估计以后也会有其他人遇到此类问题的,分享一下经验吧:)
关于“找不到附属汇编 Microsoft.VC90.CRT,上一个错误是 参照的汇编没有安装在系统上。”的解决的更多相关文章
-
An error occurred during the installation of assembly 'Microsoft.VC90.CRT……的问题
有一段时间没有用到AnkhSvn了,今天工作需要安装了一下.结果安装到一半就无法继续了,提示An error occurred during the installation of assembly ...
-
Win7安装软件,装到microsoft.vc90.crt时卡住的解决办法
在安装某些程序的时候,可能会出现下列提示:an error occured during the installation of assembly ‘microsoft.vc90.crt,versio ...
-
winserver2008,运行可执行文件,提示 激活上下文生成失败。 找不到从属程序集 Microsoft.VC90.DebugCRT,processorArchitecture=";x86";
首先我运行的可执行文件是在win7下使用vs2008生成的release版本的文件,为什么在运行的时候提示需要DebugCRT? 另外我在winserver2008上是安装了vc2008的运行环境的. ...
-
解决Vs控制台程序出现NuGet\profile.ps1,因为在此系统上禁止运行脚本错误时或提示:“无法加载文件 \.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.1.0-preview4-final\tools\init.ps1,因为在此系统上禁止运行脚本”
1,打开Windows PowerShell 2.输入 set-executionpolicy remotesigned 即可执行脚本 如果执行命令失败的话重新选择Windows PowerShell ...
-
uwp - 解决“Microsoft.EntityFrameworkCore.Tools –Pre因为在此系统上禁止运行脚本”
在uwp使用ef时,需要安装“Microsoft.EntityFrameworkCore.Tools –Pre” ,如果安装失败提示:“无法加载文件 \.nuget\packages\Microsof ...
-
An error occurred during the installation of assembly 'Microsoft.VC90.ATL or 'Microsoft.VC80.ATL'
An error occurred during the installation of assembly 'Microsoft.VC90.ATL or 'Microsoft.VC80.ATL' 下载 ...
-
32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式
32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式 一丶RadAsm的配置和使用 用了怎么长时间的命令行方式,我们发现了几个问题 1.没有代码提醒功能 2.编写代码很慢,记不住各 ...
-
C#调用Excel报 error CS1969: 找不到编译动态表达式所需的一个或多个类型。是否缺少引用?
转自[http://blog.csdn.net/bodybo/article/details/43191319] 程序需要读取Exel文件,有如下代码段 object oMissing = Syste ...
-
64位的Ubuntu系统上使用汇编nasm和C语言
64位的Ubuntu系统上使用汇编nasm和C语言 $ nasm -f elf foo.asm -o foo.o$ gcc -c bar.c -o bar.o$ ld -s foo.o bar.o ...
随机推荐
-
iOS多线程之2.NSThread的加锁@synchronized
我在上一篇文章讲了线程的生命周期,这篇文章来讲讲线程加锁的注意事项与@synchronized关键字. 那什么时候需要加锁呢,就是当多条线程同时操作一个变量时,就需要加锁了.至于为什么要加锁,可以 ...
-
Access“存储过程";参数顺序要与执行代码生成的参数顺序一致
OleDbParameter olp; OleDbCommand cmd = new OleDbCommand("insertYjsData"); olp = new OleDbP ...
-
设计模式 - chain of Responsibility
Chain of Responsibility也就是职责链模式,通过使用链式结构,使对象都有机会处理请求,从而避免请求的发送者与接受者间的耦合关系.将这些对象连成链,并沿着该链传递请求,直到有对象处理 ...
-
bzoj 2434 [Noi2011]阿狸的打字机(fail树+离线处理+BIT)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2434 [题意] 按照一定规则生成n个字符串,回答若干个询问:(x,y),问第x个字符串 ...
-
最常用Python开源框架有哪些?
Python开源框架有很多,像Django.Flask.webpy等等,但哪些是最常用到的呢?我们收集了一些Python使用者的宝贵意见,把他们认为最常用的Python开源框架简单的介绍给大家. 一. ...
-
SVN汉化教程2017.10.6
https://jingyan.baidu.com/album/b87fe19e95f5925219356853.html?picindex=4
-
HDU 2813
http://acm.hdu.edu.cn/showproblem.php?pid=2813 裸二分图最优匹配,需要用两个map把武将名字映射到点的序号上 #include <iostream& ...
-
高可用Kubernetes集群-16. ansible快速部署
说明 本文档指导采用二进制包的方式快速部署高可用kubernetes集群. 脚本托管:k8s-ansible(持续更新) 参考:高可用kubernetes集群 组件版本 组件 版本 备注 centos ...
-
.net mvc5 不同view()的视图 代码
public class Test { public int id { set; get; } public string name { set; get; } } public ActionResu ...
-
window.onload与$(document).ready()之区别
1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2 ...