Влияние нескольких определений компилятора в system.codedom в web.config - PullRequest
3 голосов
/ 03 января 2012

Все мои веб-проекты ASP.NET разрабатываются исключительно в VB.NET. (Так же как и проекты сателлитных DLL, которые, вероятно, менее актуальны.

Когда я смотрю на файл web.config по умолчанию под тегом <system.codedom>, я всегда нахожу определения компилятора для C # и VB.NET, как показано ниже.

<compilers>
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <providerOption name="CompilerVersion" value="v3.5"/>
        <providerOption name="WarnAsError" value="false"/>
    </compiler>
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" compilerOptions="/optionstrict+">
        <providerOption name="CompilerVersion" value="v3.5"/>
        <providerOption name="OptionInfer" value="true"/>
        <providerOption name="WarnAsError" value="false"/>
    </compiler>
</compilers>

Будет ли повышение производительности, если я удалю определение для компилятора C # из этого списка? Или это система отложенной загрузки, в которой неактуальный компилятор просто никогда не будет загружен. Или, может быть, какие-то недостатки, о которых я не думаю?

Я в процессе настройки приложений для развертывания в реальном времени.

1 Ответ

8 голосов
/ 03 января 2012

Это лениво загружено. Опция компилятора указывает, какой компилятор используется для динамической компиляции страницы на основе расширения файла. Если файл не имеет этого расширения, компилятор никогда не запускается.

Если вы не используете оба языка, вы можете безопасно удалить его. Однако, если вы думаете, что может использовать разработку на разных языках в будущем, лучше оставить ее там, так как это не вредит.

...