我们有一个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事件失败的原因吗?
答案 0 :(得分:0)
问题在于环境变量VS100COMNTOOLS在系统中不存在独行现象。
经过反思,这是由于卸载了VS2010。
我通过在PreBuild事件中将VS100COMNTOOLS替换为VS140COMNTOOLS来修复此问题,该事件引用了指向Visual Studio 2015常用工具的环境变量。
很遗憾这种方法取决于安装了特定版本Visual Studio的开发人员......如果我找到版本无关的解决方案,我会更新此答案。