VS 2008に小さなダミープロジェクトがあり、次のコードファイルのみが含まれています
using System;
namespace FrameworkTest
{
internal static class MessageQueueNative
{
struct TestStructure
{
public IntPtr aStatus;
}
public static void Main()
{
TestStructure pMgmtProps = new TestStructure { aStatus = IntPtr.Zero };
}
}
}
プロジェクトはターゲットフレームワーク2.0に設定されており、プロジェクトでToolsVersionを手動で2.0に設定することもできます。これで、プロジェクトはVSから正常に構築され、コマンドラインから失敗します(csc.exe 2.0を使用)。
C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Csc.exe / noconfig / nowarn:1701,1702 / errorreport:prompt / warn:4 / define:DEBUG; TRACE / reference:C:\ WINDOWS\Microsoft。 NET \ Framework \ v2.0.50727 \ System.Data.dll / reference:C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ System.dll / reference:C:\ WINDOWS \ Microsoft.NET \ Framework\v2。 0.50727 \ System.Xml.dll / debug + / debug:full / filealign:512 / optimize- / out:obj \ Debug \ FrameworksTest.exe / target:exe Class1.cs Properties \ AssemblyInfo.cs
ここで問題は、なぜVSからコンパイルするのかということです。cmd行コンパイルの場合と同じように失敗するはずです。同じソースがVS2005プロジェクトで(正しく)失敗します。
ありがとう、フローリン