我将HelloMvc项目文件夹复制到另一个文件夹"Ricky"并运行kpm restore,我得到了以下输出:

我不知道出了什么问题."kpm restore"在其原始文件夹中成功运行,该文件夹是从asp.net/home存储库中克隆的.
最后我想出了解决方案.感谢ASP.NET vNext的开源,我找到了" restore "命令的源代码.
在还原过程中,restore命令尝试通过以下方法找出项目的"根"文件夹:
public static string ResolveRootDirectory(string projectDir)
{
var di = new DirectoryInfo(projectDir);
while (di.Parent != null)
{
if (di.EnumerateFiles("*.global.json").Any() ||
di.EnumerateFiles("*.sln").Any() ||
di.EnumerateDirectories("packages").Any() ||
di.EnumerateDirectories(".git").Any())
{
return di.FullName;
}
di = di.Parent;
}
return Path.GetDirectoryName(projectDir);
}
Run Code Online (Sandbox Code Playgroud)
因为HelloMvc文件夹没有那些文件或包文件夹,所以HelloMvc的父文件夹将是根文件夹.
根文件夹很重要,因为我们需要将"NuGet.config"文件复制到根文件夹.NuGet.config指示"AspNetVNext"的包源,因此可以找到asp.net vNext的程序集.
<configuration>
<packageSources>
<add key="AspNetVNext" value="https://www.myget.org/F/aspnetvnext/" />
<add key="NuGet.org" value="https://nuget.org/api/v2/" />
</packageSources>
<packageSourceCredentials>
<AspNetVNext>
<add key="Username" value="aspnetreadonly" />
<add key="ClearTextPassword" value="4d8a2d9c-7b80-4162-9978-47e918c9658c" />
</AspNetVNext>
</packageSourceCredentials>
</configuration>
Run Code Online (Sandbox Code Playgroud)
对于我自己,我在HelloMvc文件夹中创建了一个packages文件夹,并将NuGet.config复制到HelloMvc文件夹中.所以HelloMvc文件夹本身就是根文件夹而NuGet.config就位,kpm restore成功了.
| 归档时间: |
|
| 查看次数: |
2313 次 |
| 最近记录: |