.NET - 使用嵌入式DLL作为WCF中的引用

时间:2017-08-21 13:02:32

标签: .net vb.net wcf dll

我有一个生成DLL X 的.NET项目。此项目引用第三方DLL Y X 在生成DLL Z 的WCF项目中引用。 我只能在服务器上部署 X Z ,因此我将 Y 添加为嵌入式资源在名为 Resources的文件夹中到WCF项目 Z 并更改了web.config文件,如下所示:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Y" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed"/>
    <codeBase version="8.0.0.0" href="Resources/Y.dll"/>
  </dependentAssembly>
</assemblyBinding>

在运行时,项目找不到Y.dll文件,我得到 System.IO.FileNotFoundException 异常。

我可以改变什么来使这项工作?

1 个答案:

答案 0 :(得分:1)

您无法嵌入程序集并希望它被引用。您将不得不将其部署到bin文件夹。因此,您需要进行的更改是在sam文件夹中部署了所有3个dll。

从嵌入式资源加载文件的唯一可行方法 - 必须反思使用,这在您的情况下不起作用,因为X.dll依赖于Y.dll

Assembly.GetExecutingAssembly().GetManifestResourceStream(...)