2010-03-09 5 views
3

Je suis en train de faire quelque chose comme ça dans une page ASPX:à l'aide #if déclaration DEBUG de compilation conditionnelle dans la page ASPX

<head runat="server"> 
    <% #if DEBUG %> 
     <script src="jquery-1.3.2.js" type="text/javascript"></script> 
    <% #else %> 
     <script src="jquery-1.3.2.min.js" type="text/javascript"></script> 
    <% #endif %> 
</head> 

je reçois une erreur « directives de préprocesseur doivent apparaître comme le premier caractère non-blanc une ligne". Comment puis-je faire ceci?

+0

semble identique à cette question, effectuez l'une des réponses aide là-bas? http://stackoverflow.com/questions/1801007/preprocessor-statements-in-aspx –

+0

@Andrew M - Copier l'exemple de l'autre question, j'obtiens une erreur "La collection Controls ne peut pas être modifiée car le contrôle contient des blocs de code" , j'ai essayé de supprimer runat = server de mon tag de tête, mais j'en ai besoin parce que j'utilise des thèmes. – Jeremy

Répondre

6
<head runat="server"> 
    <% 
    #if DEBUG 
    %> 
    <script src="jquery-1.3.2.js" type="text/javascript"></script> 
    <% 
    #else 
    %> 
    <script src="jquery-1.3.2.min.js" type="text/javascript"></script> 
    <% 
    #endif 
    %> 
</head> 

Works pour moi - noter que ceci est basé sur la valeur de l'attribut debug dans l'élément <compilation> du web.config.

Modifier pour répondre aux commentaires

Ah, vous êtes également l'ajout de contrôles à la tête par le code-behind? Ensuite, vous aurez probablement besoin d'ajouter ceci de façon dynamique à partir du code-behind.

Si vous êtes heureux de servir toujours la version minified, mais que vous souhaitez utiliser IntelliSense dans Visual Studio, vous devez vous assurer que vous avez installé le correctif pour activer ceci:

VS2008 SP1 Hotfix to Support "-vsdoc.js" IntelliSense Doc Files

Ceci vous permettrait de nommer votre version non-minée jquery-1.3.2.min-vsdoc.js et de la lire lorsque vous construisez les pages.

+0

Je reçois l'erreur "La collection Controls ne peut pas être modifiée car le contrôle contient des blocs de code (c'est-à-dire)." – Jeremy

1

cela est travaillé pour moi:

<head runat="server"> 
 
    <asp:PlaceHolder runat="server"> 
 
    <% 
 
#if !DEBUG 
 
    %> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=9" /> 
 
    <% 
 
#else 
 
    %> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
 
    <% 
 
#endif 
 
    %> 
 
    </asp:PlaceHolder> 
 
</head>