在具有面向 .NET Core 和 .NET Framework 的项目的 Azure DevOps Pipelines 中构建 .sln 文件的最佳实践是什么?
我曾尝试对 .sln 文件使用 NuGet 还原任务,但它在某些与 .NET Core 2.1 不兼容的包上出错。它还在运行构建时的任务描述中说明了这一点:
还原、打包或推送 NuGet 包,或运行 NuGet 命令。它支持 NuGet.org 和经过身份验证的源,如 Azure Artifacts 和 MyGet。它使用 NuGet.exe 并与 .NET Framework 应用程序一起使用。对于 .NET Core 和 .NET Standard 应用程序,请使用 .NET Core 任务。
如果我使用 .NET Core 任务,我只能在特定的 .csproj 文件上执行dotnet restore和dotnet build,但不能像使用 Visual Studio Build 任务那样执行整个 .sln 文件。
关于如何在具有 .NET Core 和 .NET Framework 项目并且还需要还原包的 Azure DevOps 中构建 .sln 文件的最佳实践是什么?
在我们的自动构建中从命令行或FinalBuilder操作调用devenv.com时,它有时会挂起并且永远不会超过编译步骤.
它使用C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\IDE中的参数调用:
devenv.com /build "Release|Any CPU" "D:\MyProject\MySolution.sln"
Run Code Online (Sandbox Code Playgroud)
它永远挂在这一步.当我在VS 2013中打开它并重新构建解决方案时,它每次都能正常工作.
有任何想法吗?我也在其他构建机器上尝试过,它也是如此.所以它不依赖于机器.
我正在使用 Google 的地理编码 API。我有两种方法,一种有效,另一种无效,我似乎无法弄清楚为什么:
string address = "1400,Copenhagen,DK";
string GoogleMapsAPIurl = "https://maps.googleapis.com/maps/api/geocode/json?address={0}&key={1}";
string GoogleMapsAPIkey = "MYSECRETAPIKEY";
string requestUri = string.Format(GoogleMapsAPIurl, address.Trim(), GoogleMapsAPIkey);
// Works fine
using (var client = new HttpClient())
{
using (HttpResponseMessage response = await client.GetAsync(requestUri))
{
var responseContent = response.Content.ReadAsStringAsync().Result;
response.EnsureSuccessStatusCode();
}
}
// Doesn't work
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri("https://maps.googleapis.com/maps/api/", UriKind.Absolute);
client.DefaultRequestHeaders.Add("key", GoogleMapsAPIkey);
using (HttpResponseMessage response = await client.GetAsync("geocode/json?address=1400,Copenhagen,DK"))
{
var responseContent = response.Content.ReadAsStringAsync().Result;
response.EnsureSuccessStatusCode();
}
}
Run Code Online (Sandbox Code Playgroud)
我发送查询字符串的最后一种方法GetAsync不起作用,我怀疑为什么会这样。当我 …
在创建数据库链接之前,我需要检查数据库链接是否已存在.我怎样才能做到这一点?
我正在编写一个以此开头的SQL脚本:
DROP DATABASE LINK mydblink
Run Code Online (Sandbox Code Playgroud)
然后我创建一个:
CREATE DATABASE LINK mydblink
CONNECT TO testuser
IDENTIFIED BY mypswd
USING 'mypersonaldb'
Run Code Online (Sandbox Code Playgroud)
如果数据库链接不存在,我当然会在第一步中收到错误.如果我省略第一步并继续创建数据库链接,我将再次收到一条错误消息,说明它已经存在同名.
我该怎么做才能检查数据库链接是否已经存在?
我是逻辑应用程序的新手,所以请耐心等待。我只是尝试在 Azure 表存储中执行简单的查找并获取可以存储在逻辑应用程序中的变量中的值。这是我的表存储的样子:
我的 RowKey 是唯一的,将是我的查找值。因此,基于 RowKey 值,我想获取 UTCOffset 值并将其存储在变量中。
这是我到目前为止所尝试过的:
我想获取返回的值“13.00”并将其存储在变量中以供进一步处理。我知道很简单,但我就是无法理解。
是否可以在 Azure Pipelines 任务中的 YAML 中使用多行?例如,对于 ARM 部署任务,有一个overrideParameters属性。如果可以将其分成几行而不是将所有内容都放在一行中,那就太好了:
- task: AzureResourceManagerTemplateDeployment@3
displayName: 'ARM deploy MyFunctionAPP'
inputs:
deploymentScope: 'Resource Group'
azureResourceManagerConnection: ${{ parameters.serviceConnection }}
subscriptionId: ${{ parameters.subscriptionId }}
action: 'Create Or Update Resource Group'
resourceGroupName: ${{ parameters.resourceGroupName }}
location: 'West Europe'
templateLocation: 'Linked artifact'
csmFile: '$(ARMtemplatesPath)\MyFunctionAPP\template.json'
csmParametersFile: '$(ARMtemplatesPath)\MyFunctionAPP\parameters.json'
deploymentMode: 'Incremental'
overrideParameters: '-environment_name ${{ parameters.environmentName }} -vnetAddressPrefix ${{ parameters.vnetAddressPrefix }} -subnet1Prefix ${{ parameters.subnet1Prefix }} -APIkey ${{ parameters.APIkey }} -queueName ${{ parameters.queueNameMyQueue }} -SendGridAPIkey ${{ parameters.SendGridAPIkey }} -StorageConnectionAppSetting ${{ …Run Code Online (Sandbox Code Playgroud) .net ×1
.net-core ×1
azure-devops ×1
c# ×1
devenv ×1
getasync ×1
httpclient ×1
oracle ×1
plsql ×1
yaml ×1