如何将DLL添加到GAC并嵌入exe

时间:2013-05-30 13:44:31

标签: c# asp.net assemblies

我需要C#代码才能将程序集添加到GAC。有人知道如何使用GACC#添加DLL吗?

3 个答案:

答案 0 :(得分:5)

Publish publish = new Publish();

publish.GacInstall(System.IO.Path.GetFullPath("MyAssembly.dll"));

命名空间:System.EnterpriseServices.Internal

程序集:System.EnterpriseServices(在System.EnterpriseServices.dll中)

答案 1 :(得分:3)

没有;您无需向GAC添加任何内容。

您只需调用Assembly.Load()即可直接从文件中嵌入的字节数组加载程序集 请注意,在JITer遇到这些程序集中的任何类型之前,您需要执行此操作。

答案 2 :(得分:1)

当您包含视频文件时,您必须将其包含为"嵌入式资源"。 如果您不知道如何操作,请执行以下步骤。

  1. 将您的视频文件添加到项目中。
  2. 点击视频文件。转到属性。
  3. 选择构建操作"嵌入式资源"
  4. 然后使用下面的类将视频检索为字节数组。我相信你可以照顾好其余部分。

        using System.IO;
        using System.Reflection;
    
        namespace MyProject.Video
        {
            class MyVideoClass
            {
                private const string videoExtract = "MyProject.Video.MyVideo.dat";      
    
                public byte[] GetStream()
                {
                    try
                    {
                        var memoryStream = new MemoryStream();
                        Stream sourceStream = null;
    
                        sourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(videoExtract); 
    
                        if (sourceStream != null) sourceStream.CopyTo(memoryStream);
    
                        return memoryStream.ToArray();
                    }
                    catch
                    {
                        return null;
                    }
                }
            }
        }