visual studio 2017 年发布 asp.net 核心
visual studio 2017 publish asp.net core
我有 Visual Studio 2017 Enterprise 15.3.2 和在 dotnet core 1.1 中制作的相当旧的项目。
如果我使用 'dotnet publish ....' 在控制台中发布我的项目,它会完美运行。
但是当我使用 Visual Studio 时,我可以毫无问题地恢复、构建、运行 我的项目。当我尝试在项目中使用 'Publish..' 上下文菜单进行发布时,只有一个问题。我把项目简单地发布到文件夹中。
发布后突然出现错误,无法组装项目。
这是我遇到的一个错误:
System.InvalidCastException: [A]NuGet.ProjectModel.LockFile cannot be cast to [B]NuGet.ProjectModel.LockFile. Type A originates from 'NuGet.ProjectModel, Version=4.3.0.5, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'LoadFrom' at location 'C:\Program Files\dotnet\sdk.0.0\Sdks\Microsoft.NET.Sdk\tools\net46\NuGet.ProjectModel.dll'. Type B originates from 'NuGet.ProjectModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'LoadFrom' at location 'C:\Program Files\dotnet\sdk.0.4\Sdks\Microsoft.NET.Sdk\tools\net46\NuGet.ProjectModel.dll'.
at Microsoft.NET.Build.Tasks.LockFileCache.GetLockFile(String path)
at Microsoft.NET.Build.Tasks.GenerateRuntimeConfigurationFiles.ExecuteCore()
at Microsoft.NET.Build.Tasks.TaskBase.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
需要帮助。
我找到了解决办法。
在 global.json 中更改 sdk 版本:
"sdk": { "version": "2.0.0" },
另一种方式是:
只需从您的 Core 2.0 项目中 delete/rename global.json 文件 :) .
我有 Visual Studio 2017 Enterprise 15.3.2 和在 dotnet core 1.1 中制作的相当旧的项目。
如果我使用 'dotnet publish ....' 在控制台中发布我的项目,它会完美运行。
但是当我使用 Visual Studio 时,我可以毫无问题地恢复、构建、运行 我的项目。当我尝试在项目中使用 'Publish..' 上下文菜单进行发布时,只有一个问题。我把项目简单地发布到文件夹中。
发布后突然出现错误,无法组装项目。 这是我遇到的一个错误:
System.InvalidCastException: [A]NuGet.ProjectModel.LockFile cannot be cast to [B]NuGet.ProjectModel.LockFile. Type A originates from 'NuGet.ProjectModel, Version=4.3.0.5, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'LoadFrom' at location 'C:\Program Files\dotnet\sdk.0.0\Sdks\Microsoft.NET.Sdk\tools\net46\NuGet.ProjectModel.dll'. Type B originates from 'NuGet.ProjectModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'LoadFrom' at location 'C:\Program Files\dotnet\sdk.0.4\Sdks\Microsoft.NET.Sdk\tools\net46\NuGet.ProjectModel.dll'.
at Microsoft.NET.Build.Tasks.LockFileCache.GetLockFile(String path)
at Microsoft.NET.Build.Tasks.GenerateRuntimeConfigurationFiles.ExecuteCore()
at Microsoft.NET.Build.Tasks.TaskBase.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
需要帮助。
我找到了解决办法。 在 global.json 中更改 sdk 版本:
"sdk": { "version": "2.0.0" },
另一种方式是:
只需从您的 Core 2.0 项目中 delete/rename global.json 文件 :) .