9

我正在使用 Windows 服务,其中我有一个程序集的引用,它是 copy local=false。但是我试图在运行时加载它,虽然当我从 Visual Studio 运行它时工作正常,但是当我尝试安装它时,cmd 给出了这个错误:

An exception occurred while trying to find the installers in the D:\Official\Pro
jects\20131007_ImproveDN\build\debug\application
s\SubscriptionService\SubscriptionService.exe assembly.
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the
 requested types. Retrieve the LoaderExceptions property for more information.
Aborting installation for D:\Official\Projects\2
0131007_ImproveDN\build\debug\applications\SubscriptionService\SubscriptionServi
ce.exe.
An exception occurred during the Rollback phase of the System.Configuration.Inst
all.AssemblyInstaller installer.
System.InvalidOperationException: Unable to get installer types in the D:\Offici
al\Projects\\20131007_ImproveDN\build\debug\appli
cations\SubscriptionService\SubscriptionService.exe assembly.
The inner exception System.Reflection.ReflectionTypeLoadException was thrown wit
h the following error message: Unable to load one or more of the requested types
. Retrieve the LoaderExceptions property for more information..
An exception occurred during the Rollback phase of the installation. This except
ion will be ignored and the rollback will continue. However, the machine might n
ot fully revert to its initial state after the rollback is complete.

这里还要注意的一件事是,如果我将该 .dll 复制到本地,它会使安装正常。但是我不想在安装之前加载它,所以我想在运行时加载它。

提前致谢。

4

3 回答 3

2

也许您需要使用另一个版本的 InstallUtil.exe:

  • c:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe
  • c:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
  • c:\Windows\Microsoft.NET\Framework64\v2.0.50727\InstallUtil.exe
  • c:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe

尝试使用Framework64子文件夹中的x64版本。

于 2016-01-28T10:13:18.163 回答
0

这里还要注意的一件事是,如果我将该 .dll 复制到本地,它会使安装正常。但是我不想在安装之前加载它,所以我想在运行时加载它。

这并不重要,程序集仍然需要进入安装目录。如果您设置Copy Localfalse,那么您仍然需要随安装分发程序集。

于 2013-10-14T12:44:14.843 回答
0

我有一个类似的问题。我做了以下对我有用的事情。

  • 首先,使用 FuseLog (Assembly Binding Viewer) 找出绑定失败的地方(这里描述

  • 开始获取日志后,我注意到我的日志中显示“文件中的程序集平台或 ContentType 无效(hr = 0x8007000b)”。

  • 我的解决方案包括 3 个项目。我浏览了每个项目的构建属性,并注意到其中一个是针对“x86”的。我将其更改为“Any CPU”,重新编译并解决了问题。
于 2014-08-25T14:46:33.333 回答