【问题标题】:ReflectionTypeLoadException on InstallUtilInstallUtil 上的 ReflectionTypeLoadException
【发布时间】:2015-04-08 05:13:09
【问题描述】:

我正在尝试为我的 VS 2013 项目安装服务,但它拒绝使用 ReflectionTypeLoadException 注册它。我有一个附加到我的项目的 .dll,但我不知道它是如何不起作用的。

这是完整的报价:

System.Reflection.ReflectionTypeLoadException:无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。

我的流程:

  1. 打开 VS2013 Dev CMD 提示符
  2. cd 到我的调试文件夹
  3. 键入“InstallUtil ProjectName.exe”

我尝试过的: 我做了谷歌,这是我所做的:

  1. 我已将 .dll 插入到与 .exe(调试)相同的文件夹中。复制本地设置为“真”
  2. 我重建了项目
  3. 我尝试将 InstallUtil .exe 复制/运行到 .net/Framework 的同一文件夹中,但没有成功
  4. 这个 dll 可能依赖于第二个 .dll,但它也在同一个调试文件夹中,并且在项目中没有被引用。

我也试过这个:http://www.devopsonwindows.com/create-a-windows-service/ 但是当我写“sc create ServiceName”fullservicepath.exe“”时,我只会得到“sc create”和参数的描述。

我在这里缺少哪些步骤?有什么方法可以深入研究项目并找出导致此问题的原因?

【问题讨论】:

  • 在你的开始按钮下导航到 Visual -Studio,在那里转到 Visual Studio Tools 文件夹,然后单击开发人员命令提示符并从他们的..
  • 这就是我尝试的地方。
  • 您能否查看此链接以了解其他要尝试的内容。-stackoverflow.com/questions/21526152/… 在您的项目中您是否正确引用了 .dll 您能否确保设置了 CopyToLocal 属性 = @ 987654325@ 听起来像是参考问题
  • 最简单的解释就是你忘记写installer for your service了。
  • 我的水晶球说你写了一个 Winforms 应用程序,而不是一个服务。您不要在 Winforms 应用程序上使用 InstallUtil.exe。使用正确的项目模板开始,它被命名为“Windows 服务”。

标签: c# dll


【解决方案1】:

关于您使用“sc create”命令尝试的内容,您需要将“binPath=”放在可执行文件的路径之前(= 和文件路径之间有一个空格),例如:

sc create ServiceName binPath= "fullservicepath.exe"

不过,我不确定这是否会解决您原来的 TypeLoadException 问题。

【讨论】:

    猜你喜欢
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 2011-08-01
    • 2018-10-21
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    相关资源
    最近更新 更多