Anmelden

Bedingte Kompilierung

Webanwendung unterstützen bedingte Kompilierung

Sonderbar ist, dass sich Symbole für bedingte Compilierung nicht berücksichtigt werden, wenn die Webanwendung im IIS kompiliert wird. Das passiert bei der Webanwendung auch dann, wenn sie kompiliert vorliegt. Die Symbole werden erst wirksam, nachdem man die Webanwendung veröffentlicht hat, offenbar kompiliert dann der IIS nicht mehr.

Immer wirksam ist dagegen die Debug-Einstellung, diese hat aber mit den konfigurationen Release/Debug vermutlich nichts zu tun. Hiermit kann man ohne Veröffentlichen bedingt kompilieren lassen (sowohl im IIS als auch Development Server).

Per Web.Config steuert man das DEBUG-Symbol im CS-Code:

< compilation debug="false">

Codeauszug, bei debug=false ist DEBUG nicht definiert, der 2. variante ist aktiv:

#if DEBUG
using AdminService.DataContracts;
using AdminService.ServiceContracts;
using AdminService.ServiceImplementation;
#else
using CustomerService.Client.CustomerManager;
#endif

Server Controls

Bei Verwendung von Server Controls (Controls ohne ascx) in App_Code muss in Register Assembly korrekt angegeben werden.

< %@ Register Namespace="Nsoft.Sys.WebControls" 
Assembly="WebApplication1" TagPrefix="uc8" %>

Bei Websites gibt man in Register als Assembly=__code an.

< %@ Register Namespace="Nsoft.Sys.WebControls" 
Assembly="__code" TagPrefix="uc8" %>

Somit wirkt sich ein Umstellen/ Kopieren von Websites/Webanwendungen sowie der Projektname einer Webanwendungen auf den aspx-Code aus. Möglicherweise kann man das in Web.Config auslagern. 

App_Code

Der Ordner App_Code wird bei Webanwendungen umbenannt nach Old_App_Code. Dadurch wird dieser Ordner nicht zur Laufzeit im WebServer JIT-Compiler kompiliert, was auch nicht erforderlich ist, da dieser Code in der WebApplication1.dll kompiliert ist. Das nochmalige Kompilieren führt bei bestimmten Webservern zu einem Fehler (z.B. Mono/XSP2) 

Klassen in Old_App_Code müssen Eigenschaften > Buildvorgang=Kompilieren gestellt werden.

   
Top

Wir arbeiten mit Software von http://www.campus21.de.

Verantwortlich für angezeigte Daten ist der Webdomain-Eigentümer laut Impressum.

Suche