我正在关注https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/create
\n当我尝试创建项目时,我得到以下信息:
\noskar@oskarslaptop:~/Programming/Resorvoir-CLI$ dotnet new console -o MyApp\nSegmentation fault (core dumped)\nRun Code Online (Sandbox Code Playgroud)\n我已经使用以下命令通过 snap 安装了 dotnet 5.0:
\nsudo snap install dotnet-sdk --classic --channel=5.0\nsudo snap alias dotnet-sdk.dotnet dotnet\nRun Code Online (Sandbox Code Playgroud)\n快照信息:
\noskar@oskarslaptop:~/Programming/Resorvoir-CLI$ sudo snap info dotnet-sdk \nname: dotnet-sdk\nsummary: Develop high performance applications in less time, on any platform.\npublisher: Microsoft .NET Core (dotnetcore\xe2\x9c\x93)\nstore-url: https://snapcraft.io/dotnet-sdk\ncontact: https://dot.net/core\nlicense: unset\ndescription: |\n .NET Core is the modular and high performance implementation of .NET for creating web applications\n and services that run on Windows, …Run Code Online (Sandbox Code Playgroud) 我在 Azure DevOps 中的 yaml 文件中有以下任务它发布我的控制台应用程序并将其压缩到一个文件中
- task: DotNetCoreCLI@2
inputs:
command: 'publish'
publishWebProjects: false
projects: '**/MyApp.csproj'
arguments: '-r win-x64 -p:PublishSingleFile=True --self-contained true -o $(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
Run Code Online (Sandbox Code Playgroud)
当我进行任何更改时,我直接在 Visual Studio 中的项目文件上设置项目版本。现在,当我在 AzureDevOps 中发布项目并自定义文件名时,我尝试获取该版本,假设对于项目版本 1.2.1,在 azure 中发布的存档文件输出应该是 MyApp-v1.2.1.zip目前它仅输出文件为 MyApp.zip
不确定我的版本控制方法是否正确,所以感谢您的任何意见!
更新:
不幸的是,提供的答案对我不起作用,我可以获得版本,但无法重命名该文件,即使复制下面的确切脚本也会产生相同的 zip 文件,而不是重命名!该文件夹将被重命名,但 zip 文件仍为 MyApp.zip。
我现在有以下脚本,尝试在最后使用 PowerShell 重命名,但成功完成执行,并再次在放置文件夹中产生完全相同的 MyApp.zip 文件
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$xml = [Xml] (Get-Content .\MyApp\MyApp.csproj)
$version = $xml.Project.PropertyGroup.Version
echo $version
echo "##vso[task.setvariable variable=version]$version"
- …Run Code Online (Sandbox Code Playgroud) 我正在尝试将 NuGet 包发布到我在 Azure Devops 中创建的 NuGet 源。我有做这类事情的经验(我在 NuGet.org 上发布),但由于某种原因我不明白,当我尝试为我的雇主做这件事时它不起作用。
当我单击“连接到源”时,我看到以下解释:
这清楚地显示了在哪里放置我的包路径以及在哪里放置源代码。但是,它没有显示将我生成的 API 密钥放在哪里。
但我尝试了一下并输入(生成包文件后):
dotnet nuget push --source "Test" --api-key az ClassLibrary1.1.0.0.nupkg
Run Code Online (Sandbox Code Playgroud)
这不起作用 (401)
我真的不明白这部分的解释:“API Key(任何字符串都可以)”。为什么可能“任何字符串都可以”。我需要一个有效的 API 密钥...不是“任何字符串”。
之后,我尝试以我有良好经验的方式进行发布(发布 nuget.org 公共 nuget 包时)。在这个声明中,明确指出了来源和密钥。
我是这样做的:
这也是行不通的。我又收到了401。
我的 API 密钥应该可以让我访问(从而防止 401)。这就是我生成 API 密钥的方式:
最有可能的是,我指定 API 密钥的方式有问题,而不是 API 密钥本身有问题。那么如何在命令行语句中正确指定它才能成功发布我的包?
我使用 .NET Core 3.1.0 开发了 WebAPI 项目,并使用 XUnit 开发了集成测试。
我在 Azure DevOps CI Pipeline (azure-pipelines.yaml) 中添加了以下任务来运行集成测试项目。
- task: DotNetCoreCLI@2
displayName: 'Run API integration tests - $(buildConfiguration)'
inputs:
command: 'test'
arguments: '--configuration $(buildConfiguration)'
publishTestResults: true
projects: '**/IntegrationTests/IntegrationTests.csproj'
Run Code Online (Sandbox Code Playgroud)
我在管道执行期间收到以下错误。如何解决此错误?
##[error] 错误:进程 '/usr/bin/dotnet' 失败,退出代码为 1
##[警告].NET 5 与较旧的 Nuget 版本(<=5.7)存在一些兼容性问题,因此如果您使用较旧的 Nuget 版本(而不是 dotnet cli)进行还原,则使用 dotnet cli 命令(例如 dotnet build)依赖于这种恢复的包可能会失败。要减轻此类错误,您可以:(1) - 使用 dotnet cli 进行还原,(2) - 使用 Nuget 5.8 版进行还原,(3) - 使用 global.json 使用较旧的 sdk 版本 (<=3) 进行构建
信息:Azure Pipelines 托管代理已更新,现在包含 .Net 5.x SDK/Runtime …
我有 .NET Core 2.2 应用程序,想使用dotnet-counters来获取一些有关 GC 的数据。不幸的是,由于某种原因,dotnet-counters 看不到我的应用程序(.NET 核心进程)。当我跑步时
dotnet-counters ps
Run Code Online (Sandbox Code Playgroud)
它什么也不返回(我的.NET核心应用程序当然正在运行)。我使用 .NET Core 版本 2.2.8 和 dotnet-counters 版本 3.1.57502。我尝试了应用程序的独立版本和依赖于框架的版本。
我有一个 .NET Core 3.1 解决方案,其中包含 2 个 Web 应用程序项目。我正在使用 Azure DevOps Pipelines 进行 CI/CD,因此我在文件中定义了构建-测试-发布步骤azure-pipelines.yml。
我用来打包两个 Web 应用程序项目的产品的任务是相当标准的,并且基于DotNetCoreCLI@2任务:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。此步骤创建两个 zip 文件,每个文件对应一个 Web 应用程序。
但是,在我的解决方案中添加了新的 Azure Functions 项目后,其产品并未以相同的方式压缩。因此,我无法将其部署到 Azure。
我猜该任务默认只发布 Web 应用程序项目。如何让它也适用于我的 Azure Functions 项目?
我有一个使用以下框架构建的项目:
<TargetFrameworks>netstandard2.0;netstandard2.1;net5.0</TargetFrameworks>
Run Code Online (Sandbox Code Playgroud)
这在我的本地计算机上编译得很好,但是当我将其推送到 Azure 时,它失败了。
当我的 YAML 文件中有以下内容时:
variables:
solution: '**/*.sln'
buildConfiguration: 'Release'
buildPlatform: 'Any CPU'
platform: x64
- task: DotNetCoreCLI@2
inputs:
command: 'build'
projects: '**/*.csproj'
arguments: '--configuration $(buildConfiguration)'
Run Code Online (Sandbox Code Playgroud)
然后我得到:
##[错误]C:\Program Files\dotnet\sdk\3.1.403\Microsoft.Common.CurrentVersion.targets(1177,5): 错误 MSB3644: 找不到 .NETFramework,Version=v5.0 的参考程序集。要解决此问题,请安装此框架版本的开发人员包(SDK/目标包)或重新定位您的应用程序。您可以在 https://aka.ms/msbuild/developerpacks下载 .NET Framework 开发人员包
如果我尝试
- task: VSBuild@1
displayName: 'Build all'
inputs:
solution: '$(solution)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
maximumCpuCount: true
Run Code Online (Sandbox Code Playgroud)
我得到:
##[错误]C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(1177,5):错误 MSB3644:.NETFramework 的参考程序集,Version=v5.0 未找到。要解决此问题,请安装此框架版本的开发人员包(SDK/目标包)或重新定位您的应用程序。您可以在 https://aka.ms/msbuild/developerpacks下载 .NET Framework 开发人员包
我使用此处描述的公式(https://learn.microsoft.com/en-us/dotnet/core/versions/remove-runtime-sdk-versions?tabs=macos)从macos卸载dotnet core sdk。我按照这些步骤操作,完成并验证没有 sdk 或运行时后,命令 dotnet 在终端中仍然有效,并且指的是在托管时有效。关于如何从我的笔记本电脑中删除所有 sdk、cli 有什么想法吗?
文档说:该上下文的模型被缓存,并且适用于应用程序域中上下文的所有其他实例。可以通过在给定的 ModelBuidler 上设置 ModelCaching 属性来禁用此缓存
但我找不到办法做到这一点。我必须禁用缓存,因为我在运行时添加模型并从程序集中加载所有模型并创建数据库。
我发现此链接表示实现此目的的一种方法是使用 DBModelBuilding - 手动将模型添加到上下文中,但它适用于实体框架,对 EF Core 没有帮助。
我希望有人能解决这个问题。
谢谢
我使用以下 Yaml 设置了 azure 构建管道
该项目是一个简单的 hello world 控制台应用程序,用 c# .net core 3.1 编写
当我在本地构建或发布该项目时,我得到以下输出:
但是,通过构建管道发布的工件为我提供了以下文件:
所以在这里,文件大小更小,更重要的是 TestYaml.exe 丢失了,并被 TestYaml 文件替换。
这应该相当简单,但我不明白缺少什么。
先谢谢您的帮助!
dotnetcorecli ×10
azure-devops ×6
.net-core ×4
c# ×3
.net-5 ×1
asp.net-core ×1
azure ×1
msbuild ×1
nuget ×1