无法加载文件或程序集 "path" 或其依赖项之一。该系统找不到指定的文件
Could not load file or assembly "path" or one of its dependencies. The system cannot find the file specified
我有一个服务。我尝试使用 c# 安装它。即使存在服务文件,我也收到错误消息
Could not load file or assembly 'file:///C:\Sample\sample.exe' or one of its dependencies. The system cannot find the file specified.
我用installutil安装成功了
string Path = @"C:\sample\sample.exe";
string[] commandLineOptions = new string[1] { "/LogFile=install.log" };
using (AssemblyInstaller installer = new AssemblyInstaller(Path, commandLineOptions))
{
installer.UseNewContext = true;
installer.Install(null);
installer.Commit(null);
}
此代码产生错误
与 installutil succeede 相同的路径。
我检查了路径,sample.exe 文件存在于指定位置。为什么会出现这个错误?
编辑
第一次 运行 此代码文件不存在,将发生异常。那时我会将文件复制到指定位置并再次调用相同的代码。
第二次实际上文件存在,但显示相同的错误消息。
使用后AssemblyInstaller
我们需要卸载文件。
var domain = AppDomain.CreateDomain("MyDomain");
using (AssemblyInstaller installer = domain.CreateInstance(typeof(AssemblyInstaller).Assembly.FullName, typeof(AssemblyInstaller).FullName, false, BindingFlags.Public | BindingFlags.CreateInstance | BindingFlags.Instance | BindingFlags.ExactBinding, null, new Object[] { Path, new String[] { } }, null, null, null).Unwrap() as AssemblyInstaller)
{
installer.UseNewContext = true;
installer.Install(null);
installer.Commit(null);
}
AppDomain.Unload(domain);
使用 AppDomain
我们可以卸载程序集。通过这个.exe文件运行后会被释放
我有一个服务。我尝试使用 c# 安装它。即使存在服务文件,我也收到错误消息
Could not load file or assembly 'file:///C:\Sample\sample.exe' or one of its dependencies. The system cannot find the file specified.
我用installutil安装成功了
string Path = @"C:\sample\sample.exe";
string[] commandLineOptions = new string[1] { "/LogFile=install.log" };
using (AssemblyInstaller installer = new AssemblyInstaller(Path, commandLineOptions))
{
installer.UseNewContext = true;
installer.Install(null);
installer.Commit(null);
}
此代码产生错误 与 installutil succeede 相同的路径。 我检查了路径,sample.exe 文件存在于指定位置。为什么会出现这个错误?
编辑
第一次 运行 此代码文件不存在,将发生异常。那时我会将文件复制到指定位置并再次调用相同的代码。 第二次实际上文件存在,但显示相同的错误消息。
使用后AssemblyInstaller
我们需要卸载文件。
var domain = AppDomain.CreateDomain("MyDomain");
using (AssemblyInstaller installer = domain.CreateInstance(typeof(AssemblyInstaller).Assembly.FullName, typeof(AssemblyInstaller).FullName, false, BindingFlags.Public | BindingFlags.CreateInstance | BindingFlags.Instance | BindingFlags.ExactBinding, null, new Object[] { Path, new String[] { } }, null, null, null).Unwrap() as AssemblyInstaller)
{
installer.UseNewContext = true;
installer.Install(null);
installer.Commit(null);
}
AppDomain.Unload(domain);
使用 AppDomain
我们可以卸载程序集。通过这个.exe文件运行后会被释放