从VS2012升级到VS2013后,SGEN无法工作

时间:2013-12-10 14:46:41

标签: c# visual-studio-2013 sgen

当我在VS2013(版本12.0.21005.1 REL)下编译我的c#解决方案时,它无法使用错误消息构建部分项目:

错误32命令“”C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.1A \ Bin \ NETFX 4.0 Tools \ sgen.exe“/a:"Project.dll”/ f / v“退出代码3.项目

构建后事件:“$(FrameworkSDKDir)\ Bin \ NETFX 4.0 Tools \ sgen.exe”/ a:“$(TargetPath)”/ f / v

确实,文件夹“C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.1A \ Bin \ NETFX 4.0 Tools”不存在:“\ Bin”仅包含文件夹“NETFX 4.5.1 Tools”

项目的目标框架:“.NET Framework 4”。

2 个答案:

答案 0 :(得分:6)

解决方案(由Microsoft提供):

  

最佳做法是使用 $(SDK40ToolsPath)属性来获取   .NET SDK二进制文件路径而不是手动构建路径   $(FrameworkSDKDir)属性。使用“$(SDK40ToolsPath)sgen.exe”应该   在Visual Studio 2013和早期版本中工作。

$(FrameworkSDKDir) value in VS macros (post build event) references invalid path

答案 1 :(得分:1)

我今天遇到了这个错误。我正在研究的项目目前正在VS2012中进行维护。在我的新安装中,我有VS2013(先安装)和VS2012。我在VS2013中构建了这个错误。

问题是我的机器上不存在运行sgen.exe的文件夹。在我的计算机上,我有$(FrameworkSDKDir)\Bin\NETFX 4.5.1 Tools\但不是$(FrameworkSDKDir)\Bin\NETFX 4.0 Tools\文件夹。

要解决此问题,我在父源控件控制器中创建了一个NETFX 4.0 Tools \并将其签入。这样,引用不再依赖于每个用户的计算机。我的帖子版本现在是"$SolutionDir\..\..\NETFX 4.0 Tools\sgen.exe" /force "$(TargetPath)"