Мне нужен код C#
для добавления сборок в GAC
. Кто-нибудь знает, как добавить DLL к GAC
, используя C#
?Как добавить DLL в GAC и вставлять с exe
ответ
Нет; вам не нужно ничего добавлять к GAC.
Вы можете просто позвонить Assembly.Load()
, чтобы загрузить сборки непосредственно из массивов байтов, встроенных в ваш файл.
Обратите внимание, что вам нужно будет сделать это до того, как JITer встретит любые типы из этих сборок.
спасибо для справки, я попробую его –
Publish publish = new Publish();
publish.GacInstall(System.IO.Path.GetFullPath("MyAssembly.dll"));
пространство имен: System.EnterpriseServices.Internal
Ассамблея: System.EnterpriseServices (в System.EnterpriseServices.dll)
При включении видео файл, который вы должны включить его как «Встроенный ресурс». Если вы не знаете, как это сделать, вот шаги.
- Добавить видеофайл в проект.
- Нажмите на видеофайл. Перейдите к свойствам.
- Выберите действие сборки «Embedded Resource»
Затем используйте ниже класс, чтобы получить видео в виде массива байтов. Я уверен, что вы можете позаботиться обо всем остальном.
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;
}
}
}
}
Это то, что вы сделали бы как часть своего установщика, а не то, что приложение будет делать при запуске. – Belogix
@Belogix: Нет; это то, что вы не сделали бы вообще. – SLaks
Позвольте мне объяснить вам больше. Я создал файл .exe, который включает все эти вещи в виде байтов. Поэтому, когда я запускаю этот exe, он должен автоматически открывать видео. Поэтому, пожалуйста, предложите мне какое-либо решение. –