部署 C# 后找不到引用的文件
Cannot find referenced file after deploy C#
我们正在尝试为我们的内部网站创建一个网站验证程序,以验证所有网站是否正常运行。为此,我们使用 seleniums chromedriver。
为此我们有 2 个项目:
1个执行代码的主项目。
1 "shared" 个项目,由我们所有不同的解决方案共享。此项目包含跨多个解决方案使用的数据。
我们已经把chromedriver放到了共享项目中,初始化如下:
public static IWebDriver InitiateChromeDriver()
{
ChromeOptions option = new ChromeOptions();
option.AddUserProfilePreference("download.default_directory", downloadPath);
option.AddUserProfilePreference("disable-popup-blocking", "true");
var path = Path.GetFullPath("Utility");
Console.WriteLine(path);
IWebDriver driver = new ChromeDriver(path, option, TimeSpan.FromMinutes(20));
return driver;
}
此方法与Chromedriver.exe放在"Utility"文件夹下,通过Visual Studio调试时可在本地运行。
当我们将它部署到我们的生产服务器时,它找不到 chromedriver 的路径。参考路径在我们的生产服务器上更改为 C:\windows\system32\inetsrv\Utility\chromedriver.exe。
引用文件并确保路径正确的更好方法是什么?
试试下面的方法。创建一个名为 drivers 的文件夹并将 chromedriver 添加到其中。
ChromeOptions options = new ChromeOptions();
option.AddUserProfilePreference("disable-popup-blocking", "true");
driver = new ChromeDriver(Path.Combine(GetBasePath, @"Drivers\"), options);
public static string GetBasePath
{
get
{
var basePath =
System.IO.Path.GetDirectoryName((System.Reflection.Assembly.GetExecutingAssembly().Location));
basePath = basePath.Substring(0, basePath.Length - 10);
return basePath;
}
}
我们正在尝试为我们的内部网站创建一个网站验证程序,以验证所有网站是否正常运行。为此,我们使用 seleniums chromedriver。
为此我们有 2 个项目: 1个执行代码的主项目。 1 "shared" 个项目,由我们所有不同的解决方案共享。此项目包含跨多个解决方案使用的数据。
我们已经把chromedriver放到了共享项目中,初始化如下:
public static IWebDriver InitiateChromeDriver()
{
ChromeOptions option = new ChromeOptions();
option.AddUserProfilePreference("download.default_directory", downloadPath);
option.AddUserProfilePreference("disable-popup-blocking", "true");
var path = Path.GetFullPath("Utility");
Console.WriteLine(path);
IWebDriver driver = new ChromeDriver(path, option, TimeSpan.FromMinutes(20));
return driver;
}
此方法与Chromedriver.exe放在"Utility"文件夹下,通过Visual Studio调试时可在本地运行。 当我们将它部署到我们的生产服务器时,它找不到 chromedriver 的路径。参考路径在我们的生产服务器上更改为 C:\windows\system32\inetsrv\Utility\chromedriver.exe。
引用文件并确保路径正确的更好方法是什么?
试试下面的方法。创建一个名为 drivers 的文件夹并将 chromedriver 添加到其中。
ChromeOptions options = new ChromeOptions();
option.AddUserProfilePreference("disable-popup-blocking", "true");
driver = new ChromeDriver(Path.Combine(GetBasePath, @"Drivers\"), options);
public static string GetBasePath
{
get
{
var basePath =
System.IO.Path.GetDirectoryName((System.Reflection.Assembly.GetExecutingAssembly().Location));
basePath = basePath.Substring(0, basePath.Length - 10);
return basePath;
}
}