首页 新闻 搜索 专区 学院

使用VS提供的“预先生成事件命令行”,提示:命令已退出,代码为1.详细描述在正文,请大佬帮忙看下

0
悬赏园豆:50 [已解决问题] 解决于 2019-05-06 23:28


先附上错误截图

问题前提:
公司项目中通过命令行将assembly.cs文件的版本号修改为当前svn的版本号,以此可以精确判断出各个客户所用的dll是哪个svn的实际版本。

问题描述:
操作系统:windows server 2008 R2
VS版本:Visual Studio Ultimate 2013

出问题场景1、在我本机没问题,但是在同时相同环境下的同事电脑上,均提示:命令已退出,代码为1
出问题场景2、昨天买了块英特尔的固态硬盘装在自己电脑上做了双系统,然后安装了Windows 10 Enterprise LTSC 2019 (x64) 和 Visual Studio Ultimate 2013,竟然也出现了这个问题

解决思路:
在问题之初,在网上通过百度、google,在csdn、博客园、Stack Overflow等网站上均未找到解决方案,后来在控制台项目中测试了简单的命令如:start cmd.exe,仍然是这个问题,请各位大佬帮忙看一下,分享一下解决思路,感谢!

依旧寒风的主页 依旧寒风 | 初学一级 | 园豆:171
提问于:2019-05-01 15:44

直接写 cmd.exe 不行吗?

不如隐茶去 1年前

@不如隐茶去: 是这样的,我们公司只有我电脑可以正常使用,其他同事都有这样的问题,节前我装了win10之后,用同样的vs安装包装完之后也出现了这个问题,怀疑是软件环境导致的,但是具体不太清楚是什么原因。

依旧寒风 1年前

start 是什么命令?

dudu 1年前

@dudu: 没想到能受到大佬关注,感谢!
我们原本是使用SubWCRev.exe来给dll在生成成功之后修改版本号的,然后我们公司只有个别同事可以正常使用预先生成事件命令行,其他同事都是提示上图中的错误,通过网上查找之后也没有找到可行的解决方案,后来我就试了一下创建一个控制台空项目,然后再执行一个简单的命令如:start cmd.exe,原本执行不了SubWCRev.exe的仍然不行,所以排除了SubWCRev.exe这个命令行的问题,应该是自身环境问题,但是网上没找到解决方案又不清楚预先生成事件命令行的原理,感觉无从下手了

依旧寒风 1年前
< >
分享
最佳答案
0

命令已退出,代码为1 表示这个命令没有成功执行,没有成功执行有很多种原因,比如命令根本不存在或者找不到命令。对于无法执行 SubWCRev.exe ,建议检查一下 PATH 环境变量中没有配置 SubWCRev.exe 所在的路径

收获园豆:50
dudu | 高人七级 |园豆:39014 | 2019-05-04 10:01

如果 PATH 环境变量配置对了,打开命令行,无论在哪个路径下都可以正常运行 SubWCRev 命令

dudu | 园豆:39014 (高人七级) | 2019-05-04 10:09

@dudu: 谢谢大佬,不过命令是正确的,在cmd.exe里面也可以成功执行,我这边是同一台电脑装了双系统,server2008 R2可以,后来装了SSD的win10就提示这个错误了,其他同事的环境server2008R2也是这个错误

依旧寒风 | 园豆:171 (初学一级) | 2019-05-04 11:34

所以后来担心是环境变量等一系列配置的原因导致的,所以重新创建了一个空的控制台项目来测试基本的命令:start cmd.exe,来打开命令行窗口

依旧寒风 | 园豆:171 (初学一级) | 2019-05-04 11:36

@依旧寒风: 建议修改一下 visual studio 的 build 日志级别看一下出错时的详细相关信息

dudu | 园豆:39014 (高人七级) | 2019-05-04 12:00

@dudu: 好的,明天到公司试下看看,多谢大佬!

依旧寒风 | 园豆:171 (初学一级) | 2019-05-04 17:13

@dudu: 大佬,其中一个同事是这样的问题,如下图所示,看起来像是环境变量没有设置导致命令无法执行,但是在上图的目录或者任意一个地方打开cmd.exe都是可以执行的,烦请大佬再帮忙看下,感谢!

依旧寒风 | 园豆:171 (初学一级) | 2019-05-05 23:07

@依旧寒风: 试试把 start cmd.exe 改为 echo %PATH% 看会输出什么

dudu | 园豆:39014 (高人七级) | 2019-05-06 10:19

@dudu:

大佬,还是返回代码1,build里面的诊断信息还是同样的问题

依旧寒风 | 园豆:171 (初学一级) | 2019-05-06 11:15

@依旧寒风: 发现了问题所在,不管输入什么命令,msbuild 都把C:\Users\Administrator\AppData\Local\Temp 当作命令来执行

dudu | 园豆:39014 (高人七级) | 2019-05-06 11:47

@dudu: 没错,我先顺着这个思路找原因,实在不行就修复一下vs看看

依旧寒风 | 园豆:171 (初学一级) | 2019-05-06 11:50

@依旧寒风: 在 Microsoft.Common.CurrentVersion.targets 中对应的 Target 是:

<Target
    Name="PreBuildEvent"
    Condition="'$(PreBuildEvent)'!=''"
    DependsOnTargets="$(PreBuildEventDependsOn)">
  <Exec WorkingDirectory="$(OutDir)" Command="$(PreBuildEvent)" />
</Target>
dudu | 园豆:39014 (高人七级) | 2019-05-06 11:59

@dudu: 没错,一模一样

依旧寒风 | 园豆:171 (初学一级) | 2019-05-06 12:04

@依旧寒风: VS 用的是哪个版本?

dudu | 园豆:39014 (高人七级) | 2019-05-06 12:16

@dudu: Visual Studio Ultimate 2013

依旧寒风 | 园豆:171 (初学一级) | 2019-05-06 12:16

@依旧寒风: 建议安装 VS2017 试试,VS2017 不会影响已经安装的 VS2013

dudu | 园豆:39014 (高人七级) | 2019-05-06 12:46

@dudu: 好的,我先尝试修复一下2013,然后如果还不行,就装2017试试看,谢谢大佬!

依旧寒风 | 园豆:171 (初学一级) | 2019-05-06 13:02

@dudu: 今天准备帮同事修复2013,才发现是Visual Studio Ultimate 2013 with Blend这个版本的,卸载重新安装的Visual Studio Ultimate 2013 Update3,现已正常。
谢谢大佬的支持。

依旧寒风 | 园豆:171 (初学一级) | 2019-05-06 23:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册