我正在努力将我的.NET解决方案从3.5升级到4.6.1。为此,我使用VS 2015进行更改,编译几乎正常。但是,我的解决方案中的一个项目在编译时失败并出现以下错误 -
D:/ build / toolchain \ Win32 \ winsdk-6.1.6000 \ bin \ svcutil.exe /serviceName:Sim.WebService.SimServer d:\ build \ SimServer \ webservice \ SviWebService.exe ..... 无法加载文件或程序集' file:/// d:\ build \ SimServer \ webservice \ SviWebService.exe'或其中一个依赖项。此程序集由比当前加载的运行时更新的运行时构建,无法加载。
我认为这是因为SviWebService.exe是使用.NET 4.6.1生成的,我们正在从早期版本的winsdk执行此exe上的svcutil,如上所示,它是6.1.6000。我想通过使用较新版本的winsdk(如8.0)中的svcutil来验证这一点,但由于某些外部依赖性而无法执行此操作。但有些人可以确认我的猜测是否正确。基本上,.NET 4.6.1与旧版本的winsdk兼容,如6.1.600
答案 0 :(得分:0)
我怀疑是这种情况,虽然我无法确认是这种情况,但您应该能够相当轻松地自行测试 - 因为您已经安装了Visual Studio 2015,我希望找到正确的版本在C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.6.1 Tools \ SvcUtil.exe
尝试运行该版本来注册您的服务 - 如果它有效,那么您肯定会知道这是兼容性问题。