ASP.NET Core应用程序引用另一个Git存储库中的项目

时间:2017-01-23 12:08:27

标签: .net azure github asp.net-core .net-core

我有一个由三个ASP.NET Core MVC应用程序和一个ASP.NET Core库组成的解决方案,它有一些由三个MVC应用程序共享的逻辑。每个应用程序和库都是他们自己的Git存储库。

现在,我尝试将其中一个MVC应用程序部署到Azure,并且在部署时,它失败并显示以下错误日志(仅显示此处发生错误的最后一部分)

Installing System.Security.Cryptography.Cng 4.2.0.
Installing System.Security.Cryptography.Csp 4.0.0.
Installing Microsoft.NETCore.Windows.ApiSets 1.0.1.
Committing restore...
Writing lock file to disk. Path: D:\home\site\repository\project.lock.json
D:\home\site\repository\project.json
Restore failed in 55782ms.

NuGet Config files used:
  C:\DWASFiles\Sites\#1cerebro-lantern\AppData\NuGet\NuGet.Config
Errors in D:\home\site\repository\project.json

Feeds used:
  Unable to resolve 'Telepathy (>= 1.0.0)' for '.NETCoreApp,Version=v1.0'.
  https://api.nuget.org/v3/index.json

Installed:
  192 package(s) to D:\home\site\repository\project.json
Failed exitCode=1, command=nuget.exe restore -packagesavemode nuspec
An error has occurred during web site deployment.
Errors in D:\home\site\repository\project.json\r\n    Unable to resolve
'Telepathy (>= 1.0.0)' for '.NETCoreApp,Version=v1.0'.\r\nD:\Program Files
(x86)\SiteExtensions\Kudu\59.51212.2600\bin\Scripts\starter.cmd 
"D:\home\site\deployments\tools\deploy.cmd"

我理解它失败了,因为它无法解析Telepathy(这是另一个存储库中的库),但我不清楚如何解决这个问题。

所有三个MVC应用程序都使用相同的库,我宁愿把它保存在它自己的Git存储库中,但是我不知道如何才能让它在一个好的库中找到我的库办法。

使它成为一个合适的NuGet库似乎也很糟糕,因为它非常特定于我的应用程序,并且对其他任何人都没用。还有其他解决方案吗?

1 个答案:

答案 0 :(得分:4)

NuGet是正确的解决方案。这就是我成功完成的事情:

  1. 使用dotnet pack为共享库项目创建NuGet工件。当然,你会想要注意你的版本。建议使用语义版本控制。
  2. 将NuGet包上传到MyGet,Visual Studio Team Services或your own NuGet server
  3. 将适当的源添加到ASP.NET Core MVC项目(通过nuget.config)并像任何其他NuGet包一样引用该包。只要您的NuGet服务器可以在公共互联网上访问,本地(或Azure)的包恢复过程将了解如何获取包。
  4. 这比试图以另一种方式引用它要清晰得多,而且你不必担心在nuget.org上放一个私人包。

相关问题