私の Windows 7 ワークステーションには、MSVC9 や MSVC10 など、さまざまなコンパイラがインストールされています。最近、MSVC10 環境でのみ発生する次の奇妙な問題に気付きました。
MSVC9 シェル (スタート メニューから使用) で実行csc.exe
すると、C# 2008 コンパイラ バージョン 3.5.30729.4926 (.NET 3.5) を使用していることがわかります。MSVC10 シェルでは、コンパイラ バージョン 4.0.30128.1 です。次の小さなサンプル プログラムは、MSVC9 ではビルドcsc.exe
できますが、MSVC10 では失敗します。
using System;
using System.Windows.Automation;
namespace UIAutomationTest
{
class Program
{
static void Main()
{
}
}
}
次のコマンド ラインを使用して (MSVC9 と MSVC10 を使用)、プログラムをビルドします。
csc Hello.cs /r:UIAutomationClient.dll /nologo
MSVC9 では、これは成功します (出力は表示されず、Hello.exe
ビルドされます)。MSVC10 では、ビルドは次のエラー メッセージで失敗します。
C:\src>csc Hello.cs /r:UIAutomationClient.dll /nologo
error CS0006: Metadata file 'UIAutomationClient.dll' could not be found
それがなぜなのか誰か知っていますか?
更新:/r:UIAutomationClient.dll
になるようにコマンド ラインを変更すると、ビルドを MSVC10 で動作させることができることに気付きました/r:WPF\UIAutomationClient.dll
。