我有一个生成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 异常。
我可以改变什么来使这项工作?
答案 0 :(得分:1)
您无法嵌入程序集并希望它被引用。您将不得不将其部署到bin文件夹。因此,您需要进行的更改是在sam文件夹中部署了所有3个dll。
从嵌入式资源加载文件的唯一可行方法 - 必须反思使用,这在您的情况下不起作用,因为X.dll依赖于Y.dll
Assembly.GetExecutingAssembly().GetManifestResourceStream(...)