Поделиться через


-netcf

Задает для компилятора нацеливание на .NET Compact Framework.

Синтаксис

-netcf

Замечания

Параметр -netcf указывает компилятору Visual Basic, что нужно нацеливать сборку на .NET Compact Framework вместо полной версии .NET Framework. Все функции языка, которые присутствуют только в полной версии .NET Framework, при этом отключаются.

Параметр -netcf предназначен для использования с -sdkpath. Параметр -netcf позволяет отключить те же функции языка, которые отсутствуют в файлах с нацеливанием на -sdkpath.

Примечание.

Параметр -netcf недоступен в среде разработки Visual Studio. Его можно использовать только при компиляции из командной строки. Параметр -netcf задается, когда загружается проект устройства Visual Basic.

Параметр -netcf изменяет следующие функции языка:

  • Оператор end <ключевое слово ключевое слово>, который завершает выполнение программы, отключен. Следующая программа будет успешно скомпилирована и выполнена без -netcf, но возвратит ошибку во время компиляции с параметром -netcf.

    Module Module1
        Sub Main()
            End   ' not valid to terminate execution with /netcf
        End Sub
    End Module
    
  • Блокируется позднее связывание во всех его проявлениях. При обнаружении любых сценариев позднего связывания создаются ошибки времени компиляции. Следующая программа будет успешно скомпилирована и выполнена без -netcf, но возвратит ошибку во время компиляции с параметром -netcf.

    Class LateBoundClass
        Sub S1()
        End Sub
    
        Default Property P1(ByVal s As String) As Integer
            Get
            End Get
            Set(ByVal Value As Integer)
            End Set
        End Property
    End Class
    
    Module Module1
        Sub Main()
            Dim o1 As Object
            Dim o2 As Object
            Dim o3 As Object
            Dim IntArr(3) As Integer
    
            o1 = New LateBoundClass
            o2 = 1
            o3 = IntArr
    
            ' Late-bound calls
            o1.S1()
            o1.P1("member") = 1
    
            ' Dictionary member access
            o1!member = 1
    
            ' Late-bound overload resolution
            LateBoundSub(o2)
    
            ' Late-bound array
            o3(1) = 1
        End Sub
    
        Sub LateBoundSub(ByVal n As Integer)
        End Sub
    
        Sub LateBoundSub(ByVal s As String)
        End Sub
    End Module
    
  • Блокируются модификаторы Auto, Ansi и Unicode. Синтаксис инструкции Declare изменяется на Declare Sub|Function name Lib "library" [Alias "alias"] [([arglist])]. В следующем коде показано влияние параметра -netcf на процесс компиляции.

    ' compile with: /target:library
    Module Module1
        ' valid with or without /netcf
        Declare Sub DllSub Lib "SomeLib.dll" ()
    
        ' not valid with /netcf
        Declare Auto Sub DllSub1 Lib "SomeLib.dll" ()
        Declare Ansi Sub DllSub2 Lib "SomeLib.dll" ()
        Declare Unicode Sub DllSub3 Lib "SomeLib.dll" ()
    End Module
    
  • Использование ключевых слов Visual Basic 6.0, которые были удалены из Visual Basic, приводит к созданию другой ошибки, если используется параметр -netcf. Это влияет на сообщения об ошибках для следующих ключевых слов:

    • Open

    • Close

    • Put

    • Print

    • Write

    • Input

    • Lock

    • Unlock

    • Seek

    • Width

    • Name

    • FreeFile

    • EOF

    • Loc

    • LOF

    • Line

Пример

В следующем примере кода выполняется компиляция Myfile.vb в .NET Compact Framework с использованием версий библиотек mscorlib.dll и Microsoft.VisualBasic.dll, которые находятся в каталоге установки .NET Compact Framework по умолчанию на диске C. Как правило, следует использовать самую последнюю версию .NET Compact Framework.

vbc -netcf -sdkpath:"c:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE " myfile.vb

См. также