2015-05-22 33 views
-1

我只想用可执行文件发布我的程序,所以我使用Costura.Fody将资源嵌入到我的程序集中。但theres一个问题..我编程添加一些组件(这也将被嵌入)(是MyDll.dll)到GAC:以编程方式访问嵌入式dll并将其保存到GAC?

using System.EnterpriseServices.Internal; 

Publish publish = new Publish(); 
publish.GacInstall("C:\Temp\MyDll.dll"); //path to my dll 

这将正常工作,如果我将附带的EXE DLL的分开,但有没有一种方法可以从我执行的MyDll.dll程序集的程序中获得一个路径,该程序嵌入在可执行文件中并将其保存为GAC?

+0

您希望在GAC中使用的任何原因?如果不尝试使用Assembly.Load()直接从嵌入在文件中的字节数组中加载程序集。像GetAssembly这样的方法不适用于字节数组。见https://msdn.microsoft.com/en-us/library/system.reflection.assembly.load%28v=vs.110%29.aspx –

+0

你不应该使用GAC,除非你想在dll中结束-hell :) – Thorarins

+0

是否可以加载嵌入式程序集的字节数组并将其写入“保存位置”,然后将其加载到GAC中?我不太清楚你想用GAC来完成什么 – Bongo

回答

-1

您的DLL会在应用程序bin文件夹,这样你就可以使用

AppDomain.CurrentDomain.BaseDirectory 

找到并运行代码后进行注册安装

一个更值得一提的事情:DLL将不如果未签署,请安装它

相关问题