当我在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”。
答案 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)"