VS 2010构建在32位和64位(程序文件)

时间:2011-01-31 11:37:05

标签: visual-studio-2010 post build

我有一个运行GacUtil.exe的VS 2010 Post Build事件。

在我的 32位笔记本电脑上,我引用了:

"C:\Program Files \Microsoft SDKs\Windows\v7.0A\bin\gacutil.exe" -i "$(TargetPath)". 

在我的 64位开发服务器上,它必须是

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\gacutil.exe" -i "$(TargetPath)". 

但我想签入一个适用于两个系统的项目。

有没有人想出如何进行与架构无关的构建后事件?

2 个答案:

答案 0 :(得分:2)

我在构建后的步骤中调用它:sgen

更新Visual Studio 2013:

此命令适用于32位和64位计算机:

"$(SDK40ToolsPath)$(SGenSubFolder)sgen.exe" /nologo /force /assembly:"$(TargetPath)" /compiler:/platform:$(Platform) /type:"[NameOfTheType]"

$(SGenSubfolder)属性定义为

<PropertyGroup Condition=" '$(Platform)' == 'x64' ">
  <SGenSubFolder>x64\</SGenSubFolder>
</PropertyGroup>

多么糟糕......

答案 1 :(得分:0)

for /f "tokens=2,*" %a in ('reg query "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.0a" /v InstallationFolder ^| findstr InstallationFolder') do "%b\bin\Gacutil.exe" -i "$(TargetPath)"