我有一个运行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)".
但我想签入一个适用于两个系统的项目。
有没有人想出如何进行与架构无关的构建后事件?
答案 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)"