我创建了一个带有Visual Studio和.NET Core工具的ASP.NET Core应用程序。它在Windows上运行良好,但是当我将其复制到Ubuntu进行部署然后运行时,我会得到:
....xproj(7,3): error MSB4019: The imported project "/usr/share/dotnet/sdk/1.0.0-preview4-004233/Microsoft/VisualStudio/v14.0/DotNet/Microsoft.DotNet.Props" was not found.
这是有道理的,因为Visual Studio未在Ubuntu上安装。为什么在那里?我尝试从Xproj中删除导入,这会导致其他问题:
error MSB4057: The target "Build" does not exist in the project.
这是xproj
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)MicrosoftVisualStudiov$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(VSToolsPath)DotNetMicrosoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
<PropertyGroup Label="Globals">
<ProjectGuid>ca453b3a-1bb5-4ed8-bbe5-fe1e627a9f76</ProjectGuid>
<RootNamespace>abc</RootNamespace>
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.obj</BaseIntermediateOutputPath>
<OutputPath Condition="'$(OutputPath)'=='' ">.bin</OutputPath>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
</PropertyGroup>
<Import Project="$(VSToolsPath)DotNet.WebMicrosoft.DotNet.Web.targets" Condition="'$(VSToolsPath)' != ''" />
</Project>
我是ASP.NET Core的新手,目前在版本,工具和预览的海洋中丢失...我认为VS工具的目标是1.0.0,但是当我在Linux上安装Dotnet Core时,我得到了1.1。0,所以我还安装了1.0.0并使用
dotnet run --framework 1.0.0
我应该做什么来在VS(2015)中创建Web项目并将其部署到Linux?
?update 我从进一步的谷歌搜索中找到了我应该安装的" .net core tooling for Visual Studio 2015",但是我不能这样做,因为我在Linux上,所以我该怎么办?
不可能开发VS中的Web应用程序并部署到Linux?
更新2 好的,尽管我正在阅读所有内容,但您在说您运行了一个使用Dotnet Run运行的Web应用程序,但我在这里发现我应该使用dotnet mydll.dll(而且在Windows上有效,至少我还没有在Linux上尝试过)
那是什么原因?核心版本?
dotnet运行比必须知道正确的dll名称要好得多,所以我猜dotnet run适用于v1.1?我是否以某种方式为v1.0构建了我的项目?
我因所有版本操作和预览等而迷失了方向,我感谢您的解释。我以为我正在下载最新的内容,我认为VS工具包是不可知论的?
我对Linux计算机上的.xproj文件有些困惑。如果您在本地发布Web应用程序,则在已发布的文件之间看不到一个.xproj文件。因为.xproj只是文件视觉工作室的需求。dotnet core只需要一个project.json文件和一个void static main到功能。
1)尝试此链接中的指南https://learn.microsoft.com/en-us/aspnet/core/publishing/linuxproduction
2)或遵循Scott Hanselman帖子的指南:http://www.hanselman.com/blog/publishinganapnaspnetcorewebsiteToActoAcheaeaClinuxvMhost.aspx
我发现正确的方法(对于SDK 1.0.0)是
- 从vs 发布
- 将发布输出文件夹的内容复制到Linux
- 使用
dotnet myapp.dll
运行(而不是Dotnet运行)。