小编use*_*834的帖子

由于 testhost.dll,Azure-DevOps Pipeline 失败

我的 azure devops 测试管道遇到一些问题。我正在使用 xunit 测试,并且每个测试项目都正确运行,并且我可以查看测试结果,但管道由于以下错误而失败

##[error]Testhost process exited with error: A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'C:\Program Files\dotnet'.
##[error]. Please check the diagnostic logs for more information.
Run Code Online (Sandbox Code Playgroud)

就像这里建议的那样,我添加了一个额外的过滤器,所以testhost.dll我的 yaml-snippet 看起来像这样:

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    testSelector: 'testAssemblies'
    testAssemblyVer2: |
      **\*test.dll
      !**\*TestAdapter.dll
      !**\obj\**
      !**\testhost.dll
      !*testhost.dll
    searchFolder: '$(System.DefaultWorkingDirectory)'
    diagnosticsEnabled: true
    codeCoverageEnabled: true
Run Code Online (Sandbox Code Playgroud)

但是,错误仍然发生,并且我的构建被标记为失败。我怎样才能解决这个问题?

testing xunit azure-devops

6
推荐指数
1
解决办法
4599
查看次数

Blazor 无法连接到 ASP.NET Core WebApi (CORS)

我有一个https://192.168.188.31:44302使用 Web API Enpoints 在本地 IP 上运行的 ASP.NET Core 服务器。我可以使用 VS Code REST 客户端连接到所述服务器。现在我想连接到 Web API,并在https://192.168.188.31:5555.

我的布洛佐代码:

@page "/login"
@inject HttpClient Http

[ ... some "HTML"-Code ... ]

@code {
    private async Task Authenticate()
    {
        var loginModel = new LoginModel
        {
            Mail = "some@mail.com",
            Password = "s3cr3T"
        };
        var requestMessage = new HttpRequestMessage()
        {
            Method = new HttpMethod("POST"),
            RequestUri = ClientB.Classes.Uris.AuthenticateUser(),
            Content =
                JsonContent.Create(loginModel)
        };

        var response = await Http.SendAsync(requestMessage);
        var responseStatusCode = response.StatusCode;

        var responseBody …
Run Code Online (Sandbox Code Playgroud)

c# cors asp.net-core blazor blazor-webassembly

6
推荐指数
2
解决办法
1万
查看次数

c#XAML ProgressBar正确设置渐变填充

如何将ProgressBar XAML中的渐变设置为动态填充?

目前它像:

在此输入图像描述

两个进度条的代码:

<ProgressBar.Foreground>
    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
       <LinearGradientBrush.RelativeTransform>
          <CompositeTransform CenterY="0.5" CenterX="0.5" Rotation="270"/>
       </LinearGradientBrush.RelativeTransform>
       <GradientStop Color="Lime" Offset="0"/>
       <GradientStop Color="Red" Offset="1"/>
    </LinearGradientBrush>
</ProgressBar.Foreground>
Run Code Online (Sandbox Code Playgroud)

但我希望鞋面的"尽头"颜色ProgressBar 呈绿黄色,就像正下方一样.意思是我希望进度条像第二个栏一样完全填充,然后"剪掉"其余部分(例如,当我有60%时,我希望右边的40%未显示)

我该怎么做呢?

编辑(找到解决方案):

在尝试了几种方法后(绘图默认颜色的矩形到酒吧等),我想通了,我可以修改offsetGradientStop由代码:

color_UL.Offset = 2.0 - ul_val / 100;
Run Code Online (Sandbox Code Playgroud)

意味着我减去我要显示的百分比,例如30%(ul_val = 30)偏移设置为170%(1.7),但条形本身显示30%,具有平滑和正确的颜色渐变.如果我在条上100%计算2.0 - 1.0它是1(正常情况,如图1中的条#2所示).

我知道这听起来很混乱,所以这里的图片就像我想要的那样:

ProgressBar具有拟合梯度

c# xaml gradient progress-bar

5
推荐指数
1
解决办法
3228
查看次数

ASP.NET Core &amp; Swagger:生成多个输出

我正在使用Swashbuckle.AspNetCore.SwaggerGen版本 v6.1.5 的 ASP.NET Core。

我希望像[HttpGet][HttpGet("user")]in a public这样的路由swagger.json用于公共端点,而包含internal在像这样的路由内部的其他路由[HttpGet("internal/user/{userGuid}")]位于swagger.json端点的内部实例中。

我在启动时配置 SwaggerConfigureServices如下:

services.AddSwaggerGen(gen =>
{
    gen.SwaggerDoc("v1", new OpenApiInfo
    {
        Title = "Server API",
        Version = "1.0",
        Description = "This API features all public available endpoints showing different API features."
    });
    gen.SwaggerDoc("v1-internal", new OpenApiInfo
    {
        Title = "Viewer Server API (internal)",
        Version = "v1-internal",
        Description = "This API features all public available endpoints showing different API features." …
Run Code Online (Sandbox Code Playgroud)

c# swagger asp.net-core openapi swagger-codegen

5
推荐指数
1
解决办法
3120
查看次数

UWP使用Skype来拨打电话号码

我希望我的c#UWP App支持主叫号码.

当我使用W10手机时我希望它使用W10 PhoneCall API正常(这是有效的)

Windows.ApplicationModel.Calls.PhoneCallManager.ShowPhoneCallUI(number, name);
Run Code Online (Sandbox Code Playgroud)

但是在W10桌面/ PC上我不会有GSM提供商,所以我想,也许用Skype来拨号,用户按下.

这可能通过UWP吗?也许类似打开网站:

await Windows.System.Launcher.LaunchUriAsync(new Uri(website));
Run Code Online (Sandbox Code Playgroud)

skype call uwp

4
推荐指数
1
解决办法
1306
查看次数

UWP在打开时更改ComboBox位置

ComboBox在c#XAML中有一个,当没有选择任何内容并且PlaceHolderText显示它并点击它打开时,正常的行为是在中间打开它.

我希望下拉列表在顶部打开.假设我有一个ComboBox并填充数字1-100,然后我希望它从1开始显示.如果下拉列表中显示七个项目,则应显示数字1-7.正常行为将显示数字47-53.

一个旧的解决方法是使用a ListView,但我不想要这个.

我怎样才能做到这一点?

c# combobox win-universal-app

4
推荐指数
1
解决办法
1333
查看次数

使用 bUnit 的 C# Blazor 测试表单

我有一个Blazor页面,想通过bUnitwith进行单元测试xUnit

我的Blazor页面:

<EditForm Model="login" OnValidSubmit="@LoginSubmit">
    <DataAnnotationsValidator />

    <p>
        <MatBlazor.MatTextField @bind-Value="@login.Mail" Label="Mail-Address" Icon="mail_outline" Dense="true"></MatBlazor.MatTextField>
        <ValidationMessage For="@(() => login.Mail)" />
    </p>
    <p>
        <MatBlazor.MatTextField @bind-Value="@login.Password" Label="Password" Icon="lock_outline" Type="password"></MatBlazor.MatTextField>
        <ValidationMessage For="@(() => login.Password)" />
    </p>
    <p>
        <MatBlazor.MatButton Label="Login" Type="Submit" Raised="true"></MatBlazor.MatButton>
        <MatBlazor.MatButton Label="Register" @onclick="NavigateRegister" Outlined="true"></MatBlazor.MatButton>
    </p>
</EditForm>
Run Code Online (Sandbox Code Playgroud)

和我的单元测试:

var ctx = MyTestContext();
var cut = ctx.RenderComponent<Login>();

var inputs = cut.FindAll("input");
var input1 = inputs.Where(x => x.ParentElement.TextContent.Contains("Mail")).FirstOrDefault();
input1.Change(testuser);
var input2 = inputs.Where(x => x.ParentElement.TextContent.Contains("Password")).FirstOrDefault();
input2.Change("s3cur3_PASS");
var buttons = …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing xunit blazor

4
推荐指数
1
解决办法
4899
查看次数

UWP透明LinearGradientBrush

我的C#UWP应用出现问题。

<Grid VerticalAlignment="Bottom" Height="40" Grid.Row="3" Margin="0,0,0,-1">
  <Grid.Background>
    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
        <GradientStop Color="#00000000" Offset="0"/>
        <GradientStop Color="{StaticResource stdBackgroundColor}" Offset="1"/>
    </LinearGradientBrush>
  </Grid.Background>
</Grid>
Run Code Online (Sandbox Code Playgroud)

该代码段应在页面底部显示一个透明的叠加层,但会创建一个黑色的叠加层,就像它在现有背景(也是Color stdBackgroundColor)的顶部添加透明值一样,因此看起来很奇怪(请参见图片)下面)

重叠问题

ScrollViewer没有这种效果的情况下,如何实现内容的透明覆盖?

c# xaml transparent linear-gradients uwp

3
推荐指数
1
解决办法
3172
查看次数

HttpClient GetAsync无法按预期工作

使用Postman测试我的Web API时,我的API执行正常!

HttpClient在我的客户端应用程序中运行代码时,代码执行时没有错误,但在服务器上没有预期的结果.可能会发生什么?

从我的客户应用程序:

private string GetResponseFromURI(Uri u)
{
    var response = "";
    HttpResponseMessage result;
    using (var client = new HttpClient())
    {
        Task task = Task.Run(async () =>
        {
            result = await client.GetAsync(u);
            if (result.IsSuccessStatusCode)
            {
                response = await result.Content.ReadAsStringAsync();
            }
        });
        task.Wait();
    }
    return response;
}
Run Code Online (Sandbox Code Playgroud)

这是API控制器:

[Route("api/[controller]")]
public class CartsController : Controller
{
    private readonly ICartRepository _cartRepo;

    public CartsController(ICartRepository cartRepo)
    {
        _cartRepo = cartRepo;
    }

    [HttpGet]
    public string GetTodays()
    {
        return _cartRepo.GetTodaysCarts();
    }

    [HttpGet]
    [Route("Add")]
    public string …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core-mvc uwp

2
推荐指数
2
解决办法
9831
查看次数

Blazor WASM PWA 找不到任何与选择器“app”匹配的元素

我使用的是 Visual Studio 2019 v16.8.5,并且在我最近升级到 .NET5 的解决方案中有一个 Blazor WASM PWA 项目。在此期间我让它运行,但最近我无法再启动它。

屏幕上显示正在加载...就是这样。控制台输出 (Firefox) 显示以下错误:Microsoft.JSInterop.JSException: Could not find any element matching selector 'app'. 在某些时候,它运行时没有出现此问题,但即使将解决方案恢复到较早的状态也不会带来任何变化,我仍然出现空白屏幕。

我发现一个 github 来源说“只是builder.RootComponents.Add<App>("app");Program Main”中删除。如果我这样做,错误就会消失,我只会得到一个空白页面,上面写着正在加载...控制台输出中没有错误。

附加信息:我现在在 Visual Studio 中运行项目后执行完整的缓存清理(cookies 和网站文件),以防止出现任何缓存问题。

我做错了什么,看不到我的任何页面?即使在明确地称他们为https://192.168.188.31:5555/login

progressive-web-apps blazor-webassembly

2
推荐指数
1
解决办法
957
查看次数