Sdílet prostřednictvím


Zveřejnění typů vizuálním návrhářům

Visual Studio musí mít přístup k definici tříd a typů v době návrhu, aby bylo možné zobrazit vizuální návrhář. Třídy se načítají z předdefinované sady sestavení, která zahrnují kompletní sadu závislostí aktuálního projektu (odkazy a jejich závislosti). Může být také nutné, aby návrháři vizuálů měli přístup ke třídám a typům definovaným v souborech generovaných vlastními nástroji.

Systémy projektů Visual Basic a Visual C# poskytují podporu pro přístup ke vygenerovaným třídám a typům prostřednictvím dočasných přenosných spustitelných souborů (dočasných PE). Jakýkoli soubor vygenerovaný vlastním nástrojem lze zkompilovat do dočasného sestavení, aby bylo možné načíst typy z těchto sestavení a vystavit je návrhářům. Výstup každého vlastního nástroje je zkompilován do samostatného dočasného prostředí PE a úspěch nebo selhání této dočasné kompilace závisí pouze na tom, zda lze vygenerovaný soubor zkompilovat nebo ne. I když projekt nemusí být sestavěný jako celek, může být pro návrháře stále k dispozici jednotlivá dočasná projektová prostředí.

Systém projektu poskytuje úplnou podporu sledování změn ve výstupním souboru vlastního nástroje za předpokladu, že tyto změny jsou výsledkem spuštění vlastního nástroje. Při každém spuštění vlastního nástroje se vygeneruje nové dočasné prostředí PE a návrhářům se odešlou příslušná oznámení.

Poznámka:

Vzhledem k tomu, že na pozadí dochází k dočasnému souboru generování spustitelného souboru programu, nejsou uživateli hlášeny žádné chyby, pokud kompilace selže.

Vlastní nástroje, které využívají dočasnou podporu pe, musí dodržovat následující pravidla:

  • GeneratesDesignTimeSource musí být v registru nastaven na hodnotu 1.

    Bez tohoto nastavení neprobíhá kompilace spustitelných souborů programu.

  • Vygenerovaný kód musí být ve stejném jazyce jako globální nastavení projektu.

    Dočasné prostředí PE je zkompilováno bez ohledu na to, jaké vlastní nástroje hlásí jako požadované rozšíření za DefaultExtension předpokladu, že GeneratesDesignTimeSource je v registru nastavena na hodnotu 1. Rozšíření nemusí být .vb, .cs nebo .jsl. Může to být jakékoli rozšíření.

  • Kód vygenerovaný vlastním nástrojem musí být platný a musí se zkompilovat sám pomocí sady odkazů, které jsou přítomné v projektu v době Generate dokončení provádění.

    Při kompilaci dočasného prostředí PE je jediným zdrojovým souborem poskytnutým kompilátoru vlastní výstup nástroje. Proto vlastní nástroj, který používá dočasné prostředí PE, musí generovat výstupní soubory, které lze kompilovat nezávisle na jiných souborech v projektu.