我有一些C#网络服务(WCF)的代码,并使用puppeteer-sharp库。首先,应该创建页面并将相关方法放在名为SayfaOlustur()的下面。然而,我遇到了System.IO.FileLoadException异常行LaunchOptions。
这段代码可以在我的本地机器和TestProject(在TestClass中使用TestMethods )上运行,但是在发布之后,整个代码页都没有创建,并抛出了System.IO.FileLoadException和System.Value异常。
项目引用和bin文件夹中包含的System.Value.dll。
public static async Task<Page> SayfaOlusturAsync()
{
Browser browser = null;
try
{
var filePath = ConfigurationManager.AppSettings["PuppeterSharpBrowserFetcherLocalChromium"].ToString();
var browserFetcher = new BrowserFetcher(new BrowserFetcherOptions
{
Path = string.IsNullOrEmpty(filePath) ? @"C:\PuppeteerSharpLocalChromium" : filePath
});
await browserFetcher.DownloadAsync(BrowserFetcher.DefaultRevision);
var options = new LaunchOptions
{
Headless = true,
ExecutablePath = @"C:\PuppeteerSharpLocalChromium\Win64-674921\chrome-win\chrome.exe"
};
browser = await Puppeteer.LaunchAsync(options);
}
catch (Exception ex)
{
HelperUtils.CmsLogger.Error(ex, "SayfaOlusturAsync");
}
return await browser.NewPageAsync();
}预期结果是使用Chronumium创建页面
异常详细信息
System.IO.FileLoadException:‘未能加载文件或程序集"System.ValueTuple,Version=0.0.0.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51“或其依赖项之一。
发布于 2019-09-13 01:10:39
.NET 4.7中添加了System.ValueTuple。将您的项目升级到4.7将是最简单的。
如果不能,但您的项目的目标是4.5+版本,但低于4.7,那么您可以安装System.ValueTuple NuGet包。如果您在那里遇到任何麻烦,请参阅this answer。
发布于 2019-09-16 20:05:18
我用这些步骤解决了这个问题。评估了所有解决方案。
1-)我升级了.NET框架4.7作为目标版本。
2-)我将这段代码(属性组)添加到项目的.csproj文件中
<PropertyGroup> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> </PropertyGroup>
3-)然后将这段代码添加到项目的应用程序或web配置文件中。
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" /> </dependentAssembly> </assemblyBinding> </runtime>
4-)然后构建了这个项目,它起作用了。
PS。为了安装和使用PuppeteerSharp,框架的版本至少为4.6.1。
https://stackoverflow.com/questions/57910073
复制相似问题