我的问题类似于这个问题:这个,但它并没有真正解决我的问题。
我正在开发一些新的AWS Lambda函数,并希望将它们的实现放在单独的类库中以便重用。我正在使用两个解决方案进行测试:
两个项目都可以成功构建。但是,在任何一个项目中,HTML Agility Pack程序集都没有复制到Debug目录中,当我尝试运行控制台应用程序时,会出现“Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'HtmlAgilityPack'”错误。
对于这两个项目,我已将包管理格式设置为“PackageReference”,我认为它应该正确处理传递依赖项。HTML Agility Pack在json.deps文件中列出,因此我不确定问题出在哪里。
如果我把类库项目移动到与控制台应用程序相同的解决方案中,它就可以正常工作。是什么阻止我将代码分离到单独的解决方案中?
我正在开发一些新的AWS Lambda函数,并希望将它们的实现放在单独的类库中以便重用。我正在使用两个解决方案进行测试:
- 一个只有一个.NET Standard类库项目的解决方案。这个类库引用了HTML Agility Pack。
- 一个只有一个.NET Core 2.0控制台应用程序项目的解决方案。
using System;
using HtmlAgilityPack;
namespace ClassLibrary1
{
public class Class1
{
public static bool FoundDotNet(string html)
{
bool foundDotNet = false;
HtmlDocument document = new HtmlDocument();
document.LoadHtml(html);
var titleNode = document.DocumentNode.SelectSingleNode("//title");
if (titleNode != null)
{
string titleText = titleNode.InnerText;
if (titleText.ToLower().Contains(".net"))
{
foundDotNet = true;
}
}
return foundDotNet;
}
}
}
控制台应用程序:
using System;
namespace TestConsole
{
class Program
{
static void Main(string[] args)
{
var foundDotNet = ClassLibrary1.Class1.FoundDotNet("<html><head><title>.NET WTF Buddy</title></head><body>You're doin' me a confuse.</body></html>");
Console.WriteLine(foundDotNet);
}
}
}
两个项目都可以成功构建。但是,在任何一个项目中,HTML Agility Pack程序集都没有复制到Debug目录中,当我尝试运行控制台应用程序时,会出现“Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'HtmlAgilityPack'”错误。
对于这两个项目,我已将包管理格式设置为“PackageReference”,我认为它应该正确处理传递依赖项。HTML Agility Pack在json.deps文件中列出,因此我不确定问题出在哪里。
"HtmlAgilityPack/1.7.1": {
"dependencies": {
"System.Net.Http": "4.3.2",
"System.Xml.XPath": "4.3.0",
"System.Xml.XPath.XmlDocument": "4.3.0",
"System.Xml.XmlDocument": "4.3.0"
}
如果我把类库项目移动到与控制台应用程序相同的解决方案中,它就可以正常工作。是什么阻止我将代码分离到单独的解决方案中?