VS2017预编译TF.exe签出已退出,代码为3

时间:2018-02-12 00:49:48

标签: visual-studio-2017 pre-build-event

我们有一个Pre-Build事件,它应该检出我们的AssemblyInfo.cs文件,以便下一个Pre-Build事件可以转换我们的AssemblyInfo.tt T4模板并生成一个新的AssemblyInfo.cs文件 - 这是我们的装配版本解决方案。

然而,预构建事件命令突然失败并且突然发生。 - 他们以前工作正常,看着源控制历史,没有人改变命令。

我已取出text transform命令以消除潜在问题。

现在唯一的预建活动是:

"$(VS100COMNTOOLS)..\IDE\TF.exe" checkout "$(ProjectDir)Properties\AssemblyInfo.cs"

我已经开启了诊断'来自构建的级别输出,这就是它所说的:

1>  Task Parameter:Command="..\IDE\TF.exe" checkout "C:\_dev\CCM\Development\SAPN.CCM\SAPN.CCM.Service.Core\Properties\AssemblyInfo.cs"
1>   (TaskId:18)
1>  "..\IDE\TF.exe" checkout "C:\_dev\CCM\Development\SAPN.CCM\SAPN.CCM.Service.Core\Properties\AssemblyInfo.cs"
1>   (TaskId:18)
1>  The system cannot find the path specified. (TaskId:18)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1274,5): error MSB3073: The command ""..\IDE\TF.exe" checkout "C:\_dev\CCM\Development\SAPN.CCM\SAPN.CCM.Service.Core\Properties\AssemblyInfo.cs"
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1274,5): error MSB3073: " exited with code 3.
1>Done executing task "Exec" -- FAILED. (TaskId:18)
1>Done building target "PreBuildEvent" in project "SAPN.CCM.Service.Core.csproj" -- FAILED.: (TargetId:20)

我意识到它说"系统无法找到指定的路径"但是我已经检查了路径,这是正确的。

我甚至尝试在VS Developer命令提示符中直接运行TF.exe命令,如下所示:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community>TF.exe checkout "C
:\_dev\CCM\Branches\CCA-Service-NoERTinSettings\SAPN.CCM\SAPN.CCM.Service\Proper
ties\AssemblyInfo.cs"

成功。

任何人都可以看到可能导致Pre-Build事件失败的原因吗?

1 个答案:

答案 0 :(得分:0)

问题在于环境变量VS100COMNTOOLS在系统中不存在独行现象。

经过反思,这是由于卸载了VS2010。

我通过在PreBuild事件中将VS100COMNTOOLS替换为VS140COMNTOOLS来修复此问题,该事件引用了指向Visual Studio 2015常用工具的环境变量。

很遗憾这种方法取决于安装了特定版本Visual Studio的开发人员......如果我找到版本无关的解决方案,我会更新此答案。