我们有一个应用程序,用.NET Core rc2编写,在验收环境(
linux服务器)上运行.
最近我们的客户运行了他们自己的性能测试,结果证明完全破坏了应用程序.由于以下几个原因,我们无法自行复制:
1)我们在 Windows上开发
2)我们已经从rc2迁移到1.0.0.
最近我们的客户运行了他们自己的性能测试,结果证明完全破坏了应用程序.由于以下几个原因,我们无法自行复制:
1)我们在 Windows上开发
2)我们已经从rc2迁移到1.0.0.
在Windows上,我们无法在新版本(1.0.0)或rc2中重现.
所以我们试图在linux机器上重现它.在1.0.0我们也无法重现他们的结果,但是当我们尝试实际测试rc2(显然是我们的应用程序的旧版本)时,我们遇到了一个非常恼人的问题:我似乎无法安装1.0.0和rc2并排,即使错误消息暗示它是可能的.
以下是错误消息
The specified framework 'Microsoft.NETCore.App',version '1.0.0-rc2-3002702' was not found. - Check application dependencies and target a framework version installed at: /usr/share/dotnet/shared/Microsoft.NETCore.App - The following versions are installed: 1.0.0 - Alternatively,install the framework version '1.0.0-rc2-3002702'.
基本上我们希望能够检查当前在linux机器上接受我们的应用程序(rc2)时正在运行的版本,但我们正在努力实际获得rc2.
谢谢.如果有任何不清楚的地方,请在评论中发布您的问题.
编辑:
我尝试将其构建为独立部署,但随后出现以下错误:
Errors in /home/nicolaas/Projects/digipolis-survey-engine/Digipolis.FormEngine/Digipolis.FormEngine.Response.API/project.json System.AppContext 4.1.0-rc2-24027 provides a compile-time reference assembly for System.AppContext on .NETCoreApp,Version=v1.0,but there is no run-time assembly compatible with ubuntu.15.10-x64. System.Runtime.InteropServices.RuntimeInformation 4.0.0-rc2-24027 provides a compile-time reference assembly for System.Runtime.InteropServices.RuntimeInformation on .NETCoreApp,but there is no run-time assembly compatible with ubuntu.15.10-x64. One or more packages are incompatible with .NETCoreApp,Version=v1.0 (ubuntu.15.10-x64).
这是预期的,因为rc2实际上没有安装在机器上,我想在linux机器上构建它
解决方法
这一直在为我们工作.
>将多个版本的dotnet运行时安装到不同的目录中.
>对于最新的运行时安装,请为每个较旧的运行时添加符号链接.例如,对于较早的运行时1.1.2,我们创建了symlink /path/to/dotnet-latest/shared/Microsoft.NETCore.App/1.1.2 – > /path/to/dotnet-1.1.2/shared/Microsoft.NETCore.App/1.1.2
>从最新的运行时安装运行dotnet,它应该选择适当的运行时.
请注意,这与Windows安装程序相同.新运行时将添加到共享安装中.通过在sdk子目录中添加适当的符号链接,可以使用类似的方法从单个安装中获得对多个sdks的支持.