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' が 1 つだけ言及されていることに注意してください。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' が 2 つ言及されていることに注意してください。

それはなぜですか、どうすればそれを防ぐことができますか?

編集

やめさせる方法をまとめました。次のように、ローカル アセンブリの名前と名前空間を追加するだけです。

<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-containing-assembly-corrupts-build-output

于 2012-12-17T16:35:50.457 に答える