dar*_*mos 10 msbuild visual-studio-2010 32bit-64bit
我编写了一个自定义的MSBuild任务,它调用SubWCRev.exe
一个(通常)驻留的可执行文件C:\Program Files\TortoiseSVN\bin
,无论是32位还是64位,因为TortoiseSVN提供了这两个版本.
问题是,Visual Studio 2010只有32位版本.因此,当我的64位盒子的同事尝试使用我的闪亮的新任务进行构建时,$(ProgramFiles)
解析为C:\Program Files(x86)
并且它爆炸说SubWCRev.exe
无法找到.因为他们有64位版本的TortoiseSVN,它存在C:\Program Files
!
有没有比C:\Program Files
我的msbuild脚本中的硬编码更好的解决方案,或者每个人都使用32位版本的TortoiseSVN?(实际上它是一个C#项目,我稍微修改了一下MSBuild代码)
mth*_*rba 14
看看这个:
<Project ToolsVersion="4.0" DefaultTargets="PrintValues" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="PrintValues">
<PropertyGroup>
<MyProgramFiles>$(ProgramW6432)</MyProgramFiles>
<MyProgramFiles Condition="$(MyProgramFiles) == ''">$(ProgramFiles)</MyProgramFiles>
</PropertyGroup>
<Message Text="MyProgramFiles: $(MyProgramFiles)"/>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
这样可以MyProgramFiles
解析32位和64位Windows的"C:\ Program Files"(ProgramW6432
非64位版本的Windows上的环境变量为空).
归档时间: |
|
查看次数: |
9361 次 |
最近记录: |