【问题标题】:Sharing a DLL between projects在项目之间共享 DLL
【发布时间】:2017-03-07 21:42:15
【问题描述】:

微软最近表示它是平台中立的,因此我尝试仅使用 VS Code 在 Mac 和 Linux 上构建并部署到 Azure。为什么?主要是为了证明我可以。

我们的项目有几个部分,其中包括几个不同的网站、一个 Web API、er API 和其他一些位。在我的 Mac 上,我构建了一个 .Net Core 类库,其中包含大量对象。命令行、dotnet 构建、DLL 输出,没问题。

我想将该 DLL 放在正在构建 MVC 网站的 Linux 机器上 - 希望这些对象构成该网站的模型部分。我不知道如何让网站项目引用我的 DLL 并使用这些对象。

我假设我将它复制到另一台机器,将它放在正在开发的站点的 bin 文件夹中,并在站点的 project.json 的 Dependencies 部分中引用它。没有。我看到一些文章说 .Net Core 只能与 NuGet 一起使用,而且它必须是一个包。这是真的吗?

我已经找到并阅读(如果不完全理解)您可以想象的在 .net 核心和 .net 框架之间共享的所有内容。这是一个仅限核心的项目,因此不适用。坦率地说,我迷路了,一种叫做 .Net Standard 的东西刚刚进入了我的视野。

【问题讨论】:

    标签: c# asp.net-core visual-studio-code .net-core class-library


    【解决方案1】:

    因此,不要复制 DLL,而是使用dotnet pack 在您的 Mac 上构建一个 nuget 包,然后将 那个复制到您的 Linux 机器上。将它放在您配置为本地 nuget 存储库的目录中(无需服务器或任何需要的东西),您就可以离开了。

    我同意它不像引用 DLL 那样简单,但也不算太糟糕。请注意,您需要适当地对包进行版本控制,以便工具系统可以检测到它何时发生更改。

    【讨论】:

    • 我们有一个赢家。一旦我在 correct nuget.config 中获得了本地存储库的条目,我就离开了。今天下午我浪费了一个小时尝试并失败了。原来我有 nuget 查看 /users/me/.config/nuget ,而 dotnet 恢复过程使用 /users/me/.nuget/nuget/ 中的那个。因为为什么不......所以无论如何,排序,通过VS Code恢复dotnet并且一切都很好。感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    相关资源
    最近更新 更多