我试图迁移一个Asp.Net核心RC1项目RC2和一直在关注这个文件和也按指示为DNX迁移到.NET CLI.
我尝试时收到以下错误dotnet run:
无法找到与其中一个目标运行时兼容的框架'.NETCoreAPP,Version = v1.0'的运行时目标:'win10-x64,win81-x64,win8-x64,win7-x64'.可能的原因:
- 项目尚未恢复或恢复失败-run'netnet restore'
- 该项目没有列出'runtimes'中的'win10-x64,win81-x64,win7-x64'之一
我跑了dotnet restore,似乎已经成功完成了.
我已将所有相关包更新到RC2.
Bla*_*ord 290
我应该完成错误消息所说的内容.从RC1迁移时,我没有意识到我必须runtimes在我的project.json文件中指定一个部分.
在我的project.json我添加了以下部分:
"runtimes": {
"win10-x64": { }
}
Run Code Online (Sandbox Code Playgroud)
我很高兴.
2017年2月27日更新
如果您选择将应用程序部署为(FDD),则Visual Studio 2017 RC中的新项目模板不再需要提前指定(in project.json或.csproj)运行时间Framework Dependent Deployment.
但是,如果您选择使用Self-contained Deployment(SCD)部署应用程序,则需要在文件中预先指定希望应用程序运行的所有运行时间.csproj.
下面是.csproj使用SCD部署方法的应用程序文件的示例:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.0</TargetFramework>
<VersionPrefix>1.0.0</VersionPrefix>
<DebugType>Portable</DebugType>
<RuntimeIdentifiers>win10-x64;osx.10.11-x64</RuntimeIdentifiers>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此链接,其中包括对这两种部署选项的详细说明,以及它们的优缺点.
Mik*_*e_G 76
将VS2015核心模板更新到1.0.1后,我收到此错误.这是因为netstandard 1.4 如果您不想指定每个运行时,我有一个PCL ,只需将依赖关系标记更改为Microsoft.NETCore.App:
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
Run Code Online (Sandbox Code Playgroud)
juF*_*uFo 34
在project.json我改变了这个(添加类型):
//"Microsoft.NETCore.App": "1.1.0",
"Microsoft.NETCore.App": { "version": "1.1.0", "type": "platform" },
Run Code Online (Sandbox Code Playgroud)
现在我可以再次建造:-)
更新:现在我可以再次构建但不"运行"网站.
您还需要确保拥有运行时和sdk:
*)Visual Studio工具包括.NET Core 1.0.1.要添加.NET Core 1.1支持,还需要安装.NET Core 1.1运行时.
https://www.microsoft.com/net/download/core#/current
Nat*_*nSr 20
我收到此错误是因为我在Visual Studio 2015中使用了令人难以置信的损坏的NuGet包管理器来更新我的project.json依赖项.它转过来了:
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
进入这个:
"dependencies": {
"Microsoft.NETCore.App": "1.1.0"
},
"frameworks": {
"netcoreapp1.0": {}
}
Run Code Online (Sandbox Code Playgroud)
再见,平台定义!
Big*_*mAZ 15
如果您阅读以下两个链接:
首先,https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/using-with-xplat-cli
和
第二,https://docs.microsoft.com/en-us/dotnet/articles/core/rid-catalog
您将看到可以使用project.json中依赖项根元素中的以下代码段构建完全可移植的版本.没有必要指定运行时,因为这是一个CORE级别的运行时,它应该是平台无关的,或称为"依赖于框架"
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
Run Code Online (Sandbox Code Playgroud)
或者您可以通过删除类型:platform元素来构建多个目标平台("自包含应用程序"),如下所示:
将其添加到project.json中的dependencies根元素
"Microsoft.NETCore.App": {
"version": "1.0.1"
}
Run Code Online (Sandbox Code Playgroud)
并将其添加为新的根级别元素
"runtimes": {
"win10-x64": {}, /* one or more RIDs */
"osx.10.10-x64": {}
},
Run Code Online (Sandbox Code Playgroud)
多个目标要求您提供称为".NET Core Runtime IDentifiers(RID)"的平台名称.可以在上面的第二个链接中找到这些名称的列表.它包括许多种类的Windows,Linux和OS X.
有关各种部署选项的详细概述,您也可以阅读此页面:
https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/index
从以上链接:
您可以为.NET Core应用程序创建两种类型的部署:
依赖于框架的部署
顾名思义,依赖于框架的部署(FDD)依赖于目标系统上存在的共享系统范围的.NET Core版本.由于.NET Core已经存在,因此您的应用程序也可以在.NET Core的安装之间移植.您的应用程序仅包含自己的代码以及.NET Core库之外的任何第三方依赖项.FDD包含.dll文件,可以使用命令行中的dotnet实用程序启动.例如,dotnet app.dll运行名为app的应用程序.
自包含部署
与FDD不同,自包含部署(SCD)不依赖于目标系统上存在的任何共享组件.所有组件(包括.NET Core库和.NET Core运行时)都包含在应用程序中,并与其他.NET Core应用程序隔离.SCD包括可执行文件(例如Windows平台上的app.exe,名为app的应用程序),它是特定于平台的.NET Core主机的重命名版本,以及.dll文件(例如app.dll),它是实际应用.
在我的情况下,我刚刚将所有nuget包更新到他们的最新版本,nuget将我的'Microsoft.NETCore.App'包引用更改为以下内容:
"Microsoft.NETCore.App": "1.1.0"
Run Code Online (Sandbox Code Playgroud)
我将其更改回以下表单,一切正常:
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
}
Run Code Online (Sandbox Code Playgroud)
我的生命3小时再见....
| 归档时间: |
|
| 查看次数: |
47525 次 |
| 最近记录: |