gpt4 book ai didi

c# - Filesystemwatcher 和 GAC

转载 作者:太空宇宙 更新时间:2023-11-03 14:20:40 24 4
gpt4 key购买 nike

在过去的几个月里,我一直在使用 Filesystemwatcher 来查找系统中的文件系统更改。但是,当我在 GAC 中安装程序集时,Filesystemwatcher 不会捕获在 GAC 中注册的 dll。这是代码。虽然该文件是在 C:\Windows\assembly\GAC_MSIL\ConsoleApplication2\1.0.0.0__aea873120d858924\consoleapplication2.dll 位置创建的,但我无法在“str”变量中找到它。相反,我有它的目录路径。有谁知道哪里出了问题。

static void Main(string[] args)
{

str = new List<string>();
FileSystemWatcher fs = new FileSystemWatcher(@"c:\");
fs.IncludeSubdirectories = true;
fs.Created += new FileSystemEventHandler(OnFileCreate);
fs.Changed += new FileSystemEventHandler(OnFileCreate);
fs.EnableRaisingEvents = true;
new System.EnterpriseServices.Internal.Publish().GacInstall(@"C:\Users\jijiadmin\Documents\Visual Studio 2008\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\consoleapplication2.dll");
Console.ReadKey();
}
static void OnFileCreate(object e, FileSystemEventArgs ev)
{
str.Add(ev.FullPath);
}

最佳答案

我怀疑您不会找到一种方法来使它很好地工作。如您所知,GAC 提供了一个虚拟化文件系统,允许具有相同名称但不同版本的程序集坐在同一目录中,就好像它们并排​​放置在同一目录中一样。我怀疑 FileSystemWatcher 无法看穿这个外观。

也许您可以维护自己的实际目录结构缓存,并遍历此缓存以查看当 C:\Windows\Assembly 根目录中的虚拟程序集更改时实际更改的内容?

关于c# - Filesystemwatcher 和 GAC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5521295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com