泥庭

2011年4月2日

Visual Studio 2010 SP1であのバグは直ったのか?

Filed under: .NET — タグ: — yone64 @ 8:38 PM

Visual Studio 2010のSP1がでて結構時間がたちました。で、今ちょうどSP1ありとなしの環境が混在しているので、比較してみました。

その1 コピーすると文字化け。

日本語をを含む文字列をWordなどにコピーすると文字化けしました。
image

で、SP1をあてた結果がこちら
image

おお、直ってる。

その2 新しいソリューションプラットフォームを追加すると余分な項目が追加される

昔、ここでもかきました。SPなしだと、こんな感じでした。
コピー元に対して

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

コピー後は、こんな感じにCodeAnalysis関係の項目が追加されていました。

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <DebugSymbols>true</DebugSymbols>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <DebugType>full</DebugType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <CodeAnalysisLogFile>bin\Debug\WpfApplication1.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
    <ErrorReport>prompt</ErrorReport>
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
    <CodeAnalysisRuleSetDirectories>;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
    <CodeAnalysisRuleDirectories>;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
  </PropertyGroup>

さて、SPあてたらどうなるか?

直ってませんでした。結果は同じなので省略。

広告

2010年11月4日

Bindingの状況をTraceする

Filed under: WPF — タグ: , , — yone64 @ 3:34 AM

WPFのBindingをトレースすることが出来ることを知りました。
詳細はこちら

XAML

<Window x:Class="WpfApplication5.Window4"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase"
        Title="Window4" Height="300" Width="300">
    <Grid>
        <TextBox Height="24" HorizontalAlignment="Left" Margin="62,108,0,0" Name="textBox1" VerticalAlignment="Top" Width="120"
                 Text="{Binding Path=Text, diag:PresentationTraceSources.TraceLevel=High}"/>
    </Grid>
</Window>

いつもと違うのは

xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase"



diag:PresentationTraceSources.TraceLevel=High

です。

その他、VisualStudio2010で出力するためには、[ツール]→[オプション]より、下記の設定が必要です。

image

2010年10月4日

TFSでコード分析を有効にするとビルドに失敗する

Filed under: 開発環境 — タグ: , — yone64 @ 6:56 AM

TFSでなぜだかコード分析が出来ないという状態に陥りました。コード分析を行うと必ずビルドエラーとなります。
image

ログを確認したところ赤太字にした箇所が原因っぽい。

  C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe  /outputCulture:1041 /out:”bin\Debug\ConsoleApplication9.exe.CodeAnalysisLog.xml” /file:”C:\Builds\2\CodeTest\ConsoleApplication9\Binaries\ConsoleApplication9.exe” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\Microsoft.CSharp.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\mscorlib.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Core.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Data.DataSetExtensions.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Data.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Xml.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Xml.Linq.dll” /directory:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client” /ruleSet:”=MinimumRecommendedRules.ruleset” /rulesetdirectory:”C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets” /rule:”-C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules” /searchgac /ignoreinvalidtargets /forceoutput /successfile /ignoregeneratedcode /saveMessagesToReport:Active /timeout:120
  出力ファイルを開けませんでした: パス ‘C:\Builds\2\CodeTest\ConsoleApplication9\Sources\ConsoleApplication9\bin\Debug\ConsoleApplication9.exe.CodeAnalysisLog.xml’ の一部が見つかりませんでした。。
MSBUILD : error : コード分析出力レポートを読み取れません。ディレクトリが書き込み可能であることを確認してください (既定はプロジェクト出力ディレクトリです)。 [C:\Builds\2\CodeTest\ConsoleApplication9\Sources\ConsoleApplication9\ConsoleApplication9.csproj]
  コード分析が完了しました — エラー 1、警告 0

TFS上での作業にもかかわらず、bin\Debug上にログファイルを出力しようとしているようです。
そして、さらなる追跡調査の結果、プロジェクトファイルにCodeAnalysisLogFileが設定してあり、そこで、bin\Debugが記述されていることが判明しました。

<PropertyGroup Condition=”‘$(Configuration)|$(Platform)’ == ‘Debug|AnyCPU'”>
  <DebugSymbols>true</DebugSymbols>
  <OutputPath>bin\Debug\</OutputPath>
  <DefineConstants>DEBUG;TRACE</DefineConstants>
  <DebugType>full</DebugType>
  <PlatformTarget>AnyCPU</PlatformTarget>
  <CodeAnalysisLogFile>bin\Debug\ConsoleApplication9.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
  <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
  <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
  <ErrorReport>prompt</ErrorReport>
  <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
  <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
  <CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
  <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
  <CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
  <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
</PropertyGroup>

その後、いろいろ試行錯誤していると、ソリューションプラットフォームのコピー時にCodeAnalysis関連の設定がプロジェクトファイルに書き込まれることを突き止めました。
かなりバグチックな動作。というわけで、初めてフィードバックをしてみました。フィードバックの書き方が難しい。
https://connect.microsoft.com/VisualStudioJapan/feedback/details/610160/

WordPress.com Blog.