我有一个表示逻辑层的类库。在该库中,我添加了一个Google.Apis.Analytics.v3的NuGet包——它安装了该包及其所有依赖项。
我有一个控制台应用程序,使用常规引用使用该逻辑类库。一切都写好并编译完成了。
问题是,在运行时,它抛出了Google.Apis.dll未找到的异常。此DLL是与NuGet一起下载的依赖项。
检查BIN文件夹,我发现在类库bin文件夹中存在此DLL,但在控制台应用程序BIN文件夹中不存在(而其他相关的DLL存在)。这意味着并非所有引用都在编译期间被复制。
我在网上搜索了各种解决方法,但没有真正起作用的(例如手动编辑项目文件并删除该dll定义中的一个true xml行)。
最终,我做的是将相同的NuGet库添加到我的控制台应用程序中——虽然可以工作,但感觉有点肮脏,不是应该的方式。我认为控制台应用程序是客户端,应从逻辑类库获取其服务,而该类库应知道自己的东西,而不必让“客户端”担心它。
此外,该控制台应用程序不是唯一要使用该服务的应用程序,我还计划编写一个将使用该功能的Web应用程序——因此,我将需要在该Web应用程序中添加相同的NuGet包——再次感觉有些凌乱......
只是我这样吗?是否正确的做法?我正在考虑编写一个WCF项目来处理该功能,但这似乎有点过度,仅为了保持我的工作流程“更清洁”。
我是不是想太多了?
谢谢