在project.json中将我的应用程序升级到版本1.0.1之后:
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
},
这适用于Windows,但不适用于Linux。 在Linux下我得到这个错误:
Project BackendGems (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
Project test (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
The specified framework 'Microsoft.NETCore.App', version '1.0.1' was not found.
- Check application dependencies and target a framework version installed at:
/opt/dotnet_cli/shared/Microsoft.NETCore.App
- The following versions are installed:
1.0.0
- Alternatively, install the framework version '1.0.1'.
SUMMARY: Total: 1 targets, Passed: 0, Failed: 1.
我尝试删除nuget缓存,并确保我拥有相同的SDK版本1.0.0-preview2-003121
。
可能出现什么问题?
答案 0 :(得分:5)
您对project.json
所做的更改会强制您的应用在运行时版本> = v1.0.1上运行,否则会失败。
dotnet restore
更新依赖项,但不更新运行时。
因此,您只需在/opt/dotnet_cli/shared/Microsoft.NETCore.App
中安装1.0.1运行时作为错误消息说明。
每个Linux发行版在.NET站点上都有不同的安装说明,因此您可以执行类似“apt-get install dotnet-dev-1.0.1”的操作
但对于Debian,我必须手动完成:
.NET Core binaries only (v1.0.1)
$ wget https://go.microsoft.com/fwlink/?LinkID=825887 -O dotnet-1.0.1.tar.gz
/opt/dotnet_cli/shared/Microsoft.NETCore.App
tar zxvf dotnet-1.0.1.tar.gz -C /opt/dotnet_cli/
现在dotnet run
按预期工作。
编辑:看起来MS正在更新下载页面,因此您现在可以找到标记为.NET Core binaries only
的文件(不提及1.0.1)。但该文件仍然是相同的。