2

我正在尝试使用以下命令执行 Windows 服务 C:\Windows\system32>installutil.exe MyNewService.exe

但我收到以下错误:初始化安装时发生异常:System.IO.FileNotFoundException:无法加载文件或程序集'file:///C:\Win dows\system32\MyNewService.exe'或其依赖项之一。该系统找不到指定的文件..

我尝试了各种博客,说空间存在一些问题,但我找不到对我的代码进行合适的修改。谁能告诉我需要哪些修改?

4

4 回答 4

3

这个错误是因为你的“installutil.exe”不在“C:\Windows\system32”下,这是一个.NET framework文件,会在.NET framework的版本下找到。例如对于 Framework 4.0,您可以在此处找到此文件:“C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319”

我会建议打开一个命令提示符窗口并 'cd' 进入“C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319”,然后执行以下命令。

installutil.exe G:\MyProjects\MyNewService\MyNewService.exe

这应该可以解决您的问题。

于 2013-01-23T18:08:08.577 回答
3

这可能是System32文件夹的权限问题。尝试将您的服务可执行文件(和其他相关文件)移出类似C:\MyNewService\的东西并像这样调用安装C:\Windows\system32>installutil.exe C:\MyNewService\MyNewService.exe

于 2013-01-23T18:01:59.390 回答
1

不幸的是,这是一个非常普遍的错误,背后可能有很多问题。基本上,.NET 运行时无法完全加载文件,这可能意味着在奇怪的情况下文件本身存在问题,或者很可能无法找到其依赖项之一。

请注意,依赖项通常是链式的,因此您引用的程序集可能会引用另一个丢失的程序集。几个建议:

  • 仔细检查您的任何依赖项是否没有强签名。
  • 如果它们不是强签名的,它们应该与您的服务位于同一目录中。
  • 如果它们是强签名的,则它们应该位于 GAC 中(确保它是正确的,将 .NET 4 DLL 放在 .NET 2 GAC 中将不起作用)或位于同一目录中。
  • 如果依赖项在 GAC 中,请尝试将副本放在本地目录中以避免任何问题。
  • 最后,如果您仍然遇到问题,请查看调试依赖项,特别是Fusion Log,请注意有很多方法可以到达那个日期,我只是链接到第一个结果。
于 2013-01-23T18:07:59.747 回答
0

感谢您的关心,我得到了解决方案。其实我给了 installutil MyNewService.exe

相反,我必须提供 installutil MyNewService.exe 完整路径....

于 2013-01-23T18:11:56.047 回答