为dnx rc2运行MVC 6 ASP.NET 5本地化示例

fer*_*adz 5 asp.net-mvc localization asp.net-core-mvc asp.net-core

我试图从这里运行AspNet5Localization示例项目https://github.com/damienbod/AspNet5Localization/tree/rc2

但是,当我打开解决方案时,会出现一个警告框:

您的解决方案需要DNX SDC版本dnx-clr-win-x86.1.0.0-rc2-16444,但未在此计算机上安装.你想现在安装吗?如果选择"否",则"dnx-clr-win-x86.1.0.0-rc1-update1"将用作此会话的解决方案DNX SDK版本.

我选择是.

然后出现另一个信息框:

DNX SDK版本dnx-clr-win-x86.1.0.0-rc2-16444无法安装.该解决方案将为此会话使用DNX SDK版本dnx-clr-win-x86.1.0.0-rc1-update1.

因为我已经安装了dnx-clr-win-x86.1.0.0-rc2-16357,所以我将"Soltion DNX SDK version"从项目属性更改为1.0.0-rc2-16357.

Active Version           Runtime Architecture OperatingSystem Alias
------ -------           ------- ------------ --------------- -----
       1.0.0-rc1-update1 clr     x64          win
       1.0.0-rc1-update1 clr     x86          win             default
       1.0.0-rc1-update1 coreclr x64          win
       1.0.0-rc1-update1 coreclr x86          win
       1.0.0-rc2-16357   clr     x86          win
Run Code Online (Sandbox Code Playgroud)

但是,无论此更改如何,都无法还原软件包.

我看到以下错误:

System.ArgumentException: More than one runtime.json file has declared imports for 'win7-x86'
Parameter name: runtimeName
   at Microsoft.Dnx.Tooling.RestoreCommand.FindRuntimeDependencies(String runtimeName, List`1 runtimeFiles, Dictionary`2 effectiveRuntimeSpecs, HashSet`1 allRuntimeNames, Func`2 circularImport)
   at Microsoft.Dnx.Tooling.RestoreCommand.FindRuntimeDependencies(String runtimeName, List`1 runtimeFiles, Dictionary`2 effectiveRuntimeSpecs, HashSet`1 allRuntimeNames)
   at Microsoft.Dnx.Tooling.RestoreCommand.<RestoreForProject>d__69.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Dnx.Tooling.RestoreCommand.<>c__DisplayClass68_0.<<Execute>b__2>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Microsoft.Dnx.Tooling.RestoreCommand.<Execute>d__68.MoveNext()
----------
Restore failed
More than one runtime.json file has declared imports for 'win7-x86'
Run Code Online (Sandbox Code Playgroud)

如何编译和运行此示例项目?

Sha*_*tin 4

如何编译并运行这个示例项目?

。从命令行运行以下三个命令。这升级了我们的dnvm并添加了最新的开发版本。确保关闭防病毒软件;我的防病毒软件阻止了几个 .NET 文件。

set DNX_UNSTABLE_FEED=https://www.myget.org/F/aspnetcidev/api/v2
dnvm upgrade -unstable
dnvm install 1.0.0-rc2-16549 -runtime coreclr -unstable
Run Code Online (Sandbox Code Playgroud)

。打开AspNet5Localization/src/AspNet5Localization/project.json。添加以下依赖项。这修复了runtime.json错误。它通过提供解析 .NETCore 包的目标框架、平台和运行时特定实现所需的运行时信息来实现这一点。

 "Microsoft.NETCore.Platforms": "1.0.1-*"
Run Code Online (Sandbox Code Playgroud)

。打开AspNet5Localization/NuGet.config。确保 asp.nuget.org 和 nuget.org 源没有被注释掉。这些源为我们提供了 Newtonsoft.Json、Remotion.Linq、Ix-Async 和一些 Microsoft.CodeAnalysis 包。完成后,NuGet.config 如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <!--To inherit the global NuGet package sources 
        remove the <clear/> line below -->
    <clear />
    <add key="MyGet aspnetcidev" 
         value="https://www.myget.org/F/aspnetcidev/api/v3/index.json" />
    <add key="api.nuget.org" 
         value="https://api.nuget.org/v3/index.json" />
    <add key="nuget.org" 
         value="https://www.nuget.org/api/v2/" />
  </packageSources>
</configuration>
Run Code Online (Sandbox Code Playgroud)

此时,dnu restore现在可以工作但dnu build不会。

. 打开AspNet5Localization/src/AspNet5Localization/Controllers/BoxesController.cs。通过查找并替换以下内容来响应最近的重命名。

HttpNotFound --> NotFound
HttpBadRequest --> BadRequest
Run Code Online (Sandbox Code Playgroud)

恢复并构建AspNet5Localization/src/Localization.SqlLocalizer项目。

$ cd src\Localization.SqlLocalizer
$ dnu restore
$ dnu build
Run Code Online (Sandbox Code Playgroud)

6恢复并构建AspNet5Localization/src/AspNet5Localization项目。

$ cd src\AspNet5Localization
$ dnu restore
$ dnu build
$ dnx web
Run Code Online (Sandbox Code Playgroud)

您将看到以下结果。

在此输入图像描述

注01 . 这是dnvm list我机器上的样子:

Active Version           Runtime Architecture OperatingSystem Alias
------ -------           ------- ------------ --------------- -----
       1.0.0-rc1-update1 coreclr x64          win
       1.0.0-rc2-16549   clr     x86          win             default
  *    1.0.0-rc2-16549   coreclr x64          win
Run Code Online (Sandbox Code Playgroud)

注02 . 构建时,您将收到两个警告:Microsoft.Extensions.CodeGeneration 和 Microsoft.Extensions.CodeGenerators.Mvc 不支持 dnx451。要消除这些错误,请打开project.json。删除这两个依赖项或删除 dnx451 框架。