在线设置描边导致反病毒停止编译

时间:2016-04-27 19:33:58

标签: c# wpf canvas line antivirus

我正在开发一个简单的家庭项目,它将在画布上绘制线条。我工作得很好,突然间,我每次尝试构建时,我的防病毒保护都开始发出警告信息。该项目无法构建错误:

  

错误无法复制" obj \ Debug \ Mozieart.exe"至   " BIN \调试\ Mozieart.exe&#34 ;.超过重试次数10.失败。 Mozieart

我使用的是最新版本的Norton 360(最新版)。反病毒警告提供以下信息:

  • 威胁名称:SAPE.Heur.AE935
  • 文件名:mozieart.exe(我正在尝试构建的exe文件)。
  • 威胁类型:启发式病毒。基于恶意软件启发式检测威胁。

我不知道这是否重要,但我设法回溯并将其缩小到以下代码行:

private void RunMeshButton_Click(object sender, RoutedEventArgs e)
{
    TrizieartMesher mesher = new TrizieartMesher(new Rect(MainImage.RenderSize));

    EdgeCountText.Text = $"{mesher.Edges.Count()}";

    MainCanvas.Children.Clear();
    foreach (IMeshEdge edge in mesher.Edges)
    {
        Line edgeLine = new Line();
        edgeLine.X1 = edge.P1.X;
        edgeLine.Y1 = edge.P1.Y;
        edgeLine.X2 = edge.P2.X;
        edgeLine.Y2 = edge.P2.Y;

        //edgeLine.Stroke = Brushes.MediumOrchid;

        MainCanvas.Children.Add(edgeLine);
    }
}

当我将edgeLine.Stroke行注释掉时,反病毒根本没有抱怨,但是一旦我取消注释该行,我就会收到反病毒警告并且项目无法编译。

我还尝试使用XAML样式设置笔划,而不是在后面的代码中执行:

<Canvas Name="MainCanvas" Background="Transparent" AllowDrop="True">
    <!--<Canvas.Resources>
        <Style TargetType="Line">
            <Setter Property="Stroke" Value="MediumOrchid" />
            <Setter Property="StrokeThickness" Value="2.0" />
        </Style>
    </Canvas.Resources>-->
</Canvas>

一旦取消注释Canvas资源,我就会收到反病毒警告,但项目无法构建。

也许我是偏执狂,但我对此非常担心。当我使用Line的Stroke属性时,是否有人试图将病毒注入我的程序?

1 个答案:

答案 0 :(得分:-1)

为了阻止反病毒检测到看起来像病毒的东西,我不得不稍微重构代码:

private void RunMeshButton_Click(object sender, RoutedEventArgs e)
{
    TrizieartMesher mesher = new TrizieartMesher(new Rect(MainImage.RenderSize));
    EdgeCountText.Text = $"{mesher.Edges.Count()}";

    MainCanvas.Children.Clear();
    List<Line> meshLines = mesher.Edges.Select(edge => CreateLine(edge.P1, edge.P2)).ToList();
    foreach (Line line in meshLines)
    {
        MainCanvas.Children.Add(line);
    }
}

private static Line CreateLine(Point p1, Point p2)
{
    Line newLine = new Line();
    newLine.X1 = p1.X;
    newLine.Y1 = p1.Y;
    newLine.X2 = p2.X;
    newLine.Y2 = p2.Y;

    newLine.Stroke = Brushes.MediumOrchid;

    return newLine;
}