C# C::我的第一条Azure DevOps管道(“你好,世界!”)-“;类型或命名空间名称';系统&x27;“找不到”;
(目前)我只想创建一个运行C# C::我的第一条Azure DevOps管道(“你好,世界!”)-“;类型或命名空间名称';系统&x27;“找不到”;,c#,.net,azure,azure-devops,azure-pipelines,C#,.net,Azure,Azure Devops,Azure Pipelines,(目前)我只想创建一个运行Helloworld.cs的Azure DevOps C#管道 我创建了一个Helloworld.cs&Helloworld.csproj如下 Helloworld.cs using System; class HelloWorld { static void Main() { Console.WriteLine("Hello, World!"); } } Helloworld.csproj <Project xmlns
Helloworld.cs
的Azure DevOps C#管道
我创建了一个Helloworld.cs
&Helloworld.csproj
如下
Helloworld.cs
using System;
class HelloWorld
{
static void Main()
{
Console.WriteLine("Hello, World!");
}
}
Helloworld.csproj
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Compile Include="Helloworld.cs" />
</ItemGroup>
<Target Name="Build">
<Csc Sources="@(Compile)"/>
</Target>
</Project>
因此,在排除故障的过程中,我发现了这样一个问题:
一些答案建议恢复NuGet包。因此,我在YAML中添加了一个NuGet恢复作为第一阶段
YAML文件
trigger:
- master
pool:
vmImage: 'windows-latest'
stages:
- stage: Restore_NuGet_Stage
displayName: 'Restore NuGet Stage'
jobs:
- job: restore_nuget
displayName: 'Restore NuGet'
steps:
- task: NuGetCommand@2
inputs:
command: restore
- stage: Build_Stage
displayName: 'Build Stage'
jobs:
- job: compile_cs
displayName: 'Compile CS Files'
steps:
- task: DotNetCoreCLI@2
displayName: 'Build Task'
inputs:
command: build
projects: 'Helloworld.csproj'
arguments: '--configuration Testing'
但是我仍然得到了完全相同的名称空间名称“System”找不到
上面发现的错误
我必须修复什么才能克服此错误?我以为编译代码将是最简单的部分
编辑-以下是我运行管道时显示的初步输出。有.Net核心版本2.158.1
列出&SDK版本3.0.100
,以防有所帮助
Starting: Build Task
==============================================================================
Task : .NET Core
Description : Build, test, package, or publish a dotnet application, or run a custom dotnet command
Version : 2.158.1
Author : Microsoft Corporation
Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/build/dotnet-core-cli
==============================================================================
C:\windows\system32\chcp.com 65001
Active code page: 65001
"C:\Program Files\dotnet\dotnet.exe" build d:\a\1\s\Helloworld.csproj --configuration Testing
Welcome to .NET Core 3.0!
---------------------
SDK Version: 3.0.100
您创建项目文件的引用已过时-这可以追溯到只有一个.net framework的时代,因此无需告诉msbuild目标是什么 现在,需要另外一个配置元素来告诉msbuild您正在使用的框架: 您需要添加TargetFramework属性:
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
请注意根级别的Sdk=
属性。这记录在:
MSBuild 15.0引入了“project SDK”的概念,它简化了需要导入属性和目标的软件开发工具包的使用
它总结了将一个旧的.net framework项目升级到dotnet core所需的更改—其长短不一之处在于,您的问题是由于将旧的项目格式与新的工具混合在一起而引起的。要构建.Net Framework项目,我认为您需要的是而不是dotnet cli任务。谢谢。不幸的是,在
标记之间添加netcoreapp2.1
后,我仍然会收到相同的错误。我也试过把2.1
改成3.0
,也试过在我的手机上改成不可用;我现在在电脑前,将尝试并复制。因此,唯一需要的更改确实是.csproj
文件--只需输入默认内容,就像您在这里看到的那样…我多次考虑在VS中启动一个新的C项目,以查看.csproj
的内容,并将它们复制到我的管道的.csproj
…看起来我应该这样做你刚刚做了那件事,你从哪里得到这个错误的?在VisualStudio中?
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
</Project>