错误 1 任务失败,原因是未找到“sgen.exe”,或未安装 .NET Framework SDK v2.0。该任务正在注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 的 SDKInstallRootv2.0 值中指定的位置下的“bin”子目录中查找“sgen.exe”。您可以通过执行下列操作之一,来解决这一问题: 1.) 安装 .NET Framework SDK v2.0。2.) 将上面的注册表项手动设置到正确的位置。3.) 将正确位置传入任务的“ToolPath”参数。 UnionLib
操作系统是Win8,开发环境是VS2012+.NET4.0,所以装不上 .NET Framework SDK v2.0
sgen.exe是预编译器
release配置看看,你是配置要编译为本机代码了?或者预生成序列化程序集选项是否开启,关闭它。
抱歉,看成ngen.exe了,sgen是XML序列化程序生成器工具。
那估计就是你项目的属性》生成中开启了生成序列化程序集的选项了。
@乱舞春秋: 您好!我项目属性》生成中生成序列号程序集 是自动的,如果选择关闭,确实不会报错,但其它项目都是自动的啊,为什么单单这个项目要选择关闭才能编译通过呢?
@陈宝: 可能是你这个项目里面有xml序列化的代码吧,它自动开启了sgen来优化你的xml序列化的性能,但是却没找到sgen.exe这个工具。
在项目中,将这个文件复制本地,检查下Debug的bin目录是不是有这个文件,把他复制到Release的bin目录下。
可以安装 .Net 2.0 。
控制面板=>所有控制面板项=>程序和功能=>启用或关闭 Windows 功能=> .Net Framework 3.5 (包括 .Net 2.0 和 .Net 3.0)
安装了还是不行
用记事本方式打开 *.csproj ,搜索 “sgen”
记事本打开找不到sgen