1

在 VS2010 中创建一个新的 WPF 应用程序。在 MainWindow.cs 中声明一个未使用的局部变量以生成编译器警告,如下所示:

namespace WpfApplication4
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            int i = 0;
        }
    }
}

构建应用程序。输出将如下所示:

------ Rebuild All started: Project: WpfApplication4, Configuration: Debug x86 ------
D:\_UserData\Development\Workspaces\DotnetTesting\WpfApplication4\WpfApplication4\MainWindow.xaml.cs(25,8): warning CS0219: The variable 'i' is assigned but its value is never used

Compile complete -- 0 errors, 1 warnings
  WpfApplication4 -> D:\_UserData\Development\Workspaces\DotnetTesting\WpfApplication4\WpfApplication4\bin\Debug\WpfApplication4.exe
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

请注意,只有一次提到未使用的变量“i”。现在在 MainWindow.xaml 中添加对本地命名空间的引用,如下所示:

<Window x:Class="WpfApplication4.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfApplication4"
    Title="MainWindow" Height="350" Width="525">
    <Grid>

    </Grid>
</Window>

现在重建,输出如下所示:

------ Rebuild All started: Project: WpfApplication4, Configuration: Debug x86 ------
D:\_UserData\Development\Workspaces\DotnetTesting\WpfApplication4\WpfApplication4\MainWindow.xaml.cs(25,14): warning CS0219: The variable 'i' is assigned but its value is never used

Compile complete -- 0 errors, 1 warnings
MainWindow.xaml.cs(25,14): warning CS0219: The variable 'i' is assigned but its value is never used
  WpfApplication4 -> D:\_UserData\Development\Workspaces\DotnetTesting\WpfApplication4\WpfApplication4\bin\Debug\WpfApplication4.exe
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

请注意,现在有两次提到未使用的变量“i”。

为什么会这样,我该如何阻止它发生?

编辑

我已经想出了如何让它停止。只需添加本地程序集的名称以及命名空间,如下所示:

<Window x:Class="WpfApplication4.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfApplication4;assembly=WpfApplication4"
    Title="MainWindow" Height="350" Width="525">
    <Grid>

    </Grid>
</Window>

不幸的是,这不是一个解决方案,因为在 WPF exe 中引用本地程序集中的命名空间时,您不允许在命名空间声明中提供程序集的名称。这将构建,但是如果您尝试在本地程序集中引用一个类型,如果指定了程序集名称,它将失败。使用 xmlns:local="clr-namespace:WpfApplication4;assembly=" 语法会返回双重警告。

PS 为什么投反对票?不加评论的否决投票是蹩脚的,如果你不告诉我你不喜欢这个问题,我应该如何改进这个问题?

4

1 回答 1

1

这是因为这是MS不会修复的VS2010中的错误。

https://connect.microsoft.com/VisualStudio/feedback/details/763045/adding-a-xaml-namespace-reference-to- contains-assembly-corrupts-build-output

于 2012-12-17T16:35:50.457 回答