У меня есть небольшой фиктивный проект в 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: приглашение / предупреждение: 4 / define: DEBUG; TRACE / ссылка: 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.
Спасибо,
флорин