У меня есть небольшой фиктивный проект в 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 };
}
}
}
Проект устанавливается целевой Framework 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/ссылка: 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 Свойства \ AssemblyInfo.cs
Теперь вопрос в том, почему он компилируется из VS? Он должен завершиться неудачно, как в случае компиляции строки cmd. Тот же источник не работает (правильно) в проекте VS2005.
Спасибо, флорин
и ошибка ...? –
Ошибка в том, что VS компилируется и MsBuild терпит неудачу. Это означает, что я не могу использовать VS для проверки кода перед выполнением кода. Я считаю, что здесь MsBuild имеет правильное поведение. В нашей установке у нас есть VS2008, проект имеет значение ToolsVersion, равное 2.0, и целевую структуру, установленную в 2.0. MsBuild использует правильную ToolsVersion (2.0), в то время как VS использует 3.0 или 3.5 (я точно не знаю). – florin