2011-01-31 81 views
2

我有一個VS 2010郵政建設事件,運行GacUtil.exeVS 2010建立在32位和64位(程序文件)

在我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)". 

但我要檢查,在在兩個系統上都能運行的項目。

有沒有人想過如何做獨立於架構的後構建事件?

+0

爲什麼不只是添加bi n文件夾到兩臺機器上的PATH環境變量? – adrianm 2011-01-31 11:45:57

+0

圖表9431爲什麼硬編碼目錄路徑是壞BAD壞。 – 2011-01-31 11:46:26

回答

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)" 
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> 

什麼混亂...