添加到现有解决方案的空白Web应用程序项目无法编译

时间:2016-10-19 15:28:00

标签: visual-studio-2015 asp.net-core

我想在现有解决方案中创建一个新的ASP.NET Core项目(在Visual Studio 2015中)。但即使是刚从模板创建的空白项目也无法编译,因为它找不到一些引用的库(至少是Microsoft.Extensions.Configuration,Microsoft.Extensions.DependencyInjection,Microsoft.Extensions.Logging)。似乎某些解决方案全局设置会影响查找这些包,因为当我创建新解决方案时,一切正常。这些设置可以是什么?

我所知道的:

  1. 源代码编辑器显示名称空间Microsoft.Extensions.Configuration,Microsoft.Extensions.DependencyInjection,Microsoft.Extensions.Logging as unused(grey),以及这些扩展中定义的类和方法不可用。

  2. 解决方案资源管理器中的“引用”列表显示缺少的库的名称,但在它们下面没有扩展列表。对于其他包,有一个包含依赖项和dll文件的列表,但不适用于这些包。

  3. 添加到现有解决方案的项目在\ Users \%USERNAME%\。\ ndnx \ packages中查找包,而单独解决方案中的项目在\ Users \%USERNAME%\。\ nuget \中查找包。包(根据“属性”窗口中的“路径”属性)。但缺少的库存在于这两个目录中。

  4. 在项目依赖项中,缺少的库是为较旧的.NET版本编译的库。例如,包缓存中包含Microsoft.Extensions.Configuration.Json的文件夹包含针对net451和netstandard1.3的版本,并且此包可用。但是包含Microsoft.Extensions.Configuration的文件夹仅针对netstandard1.1,并且项目的行为就好像此包根本不存在一样。其他软件包的情况也是如此 - 当软件包缓存目标为netstandard1.3或netstandard1.6时,一切正常,但是为netstandard1.0或netstandard1.1编译的软件包不可用。同样,在单独的解决方案中,包缓存中的包是相同的,但编译器会在其目标上独立地查看所有这些库。

  5. dotnet restore使项目处于一种奇怪的状态 - 解决方案资源管理器中的几乎所有引用都显示为已损坏,源代码编辑器不会抱怨Microsoft.Extensions.Configuration中定义的类,Microsoft .Extensions.DependencyInjection,Microsoft.Extensions.Logging,但它需要向System.Runtime 4.0.0.0添加依赖项。该项目仍然没有编译。从Visual Studio还原包将项目返回到上述状态。

  6. 我已经在“ASP.NET核心Web应用程序(.NET核心)”和“ASP.NET核心Web应用程序”(.NET Framework)组中尝试了模板“空”,“Web API”和“Web应用程序” )”。结果与所有六个相同。

  7. 更改project.json中的目标框架(我已经尝试过net451,net452,net46,net462)也无济于事。

  8. 这种行为可能是什么原因,或者我应该检查什么?

    VS2015 Update 3,.NET Core 1.0.1 - VS2015工具预览2和.NET Framework 4.6.2已安装。

0 个答案:

没有答案