Category Archives: Development Tools

Když wsdl.exe/VS hlásí „WSDL: error WSDL1: Item has already been added. Key in dictionary: ‚[45]:http://my.url.com/path:Negotiate‘

Pokud používáte wsdl.exe (nebo Add Web Reference ve VS) pro vygenerování proxy tříd(y) k webovým službám a dostáváte hlášku:

WSDL: error WSDL1: Item has already been added. Key in dictionary: '[45]:http://my.url.com/path:Negotiate' Key being added'[45]:http://my.url.com/path:Negotiate'

Tak je to nejspíš tím, že se v definičním XML souboru (parameters pro wsdl.exe) odkazujete na více WSDL dokumentů s authentizací

Mně pomohlo authentizační parametry z XML vyhodit, protože WSDL byla přístupná i anonymně. Pokud v takové situaci nejste, pak pomůže stáhnout WSDL soubory na disk (např. pomocí disco.exe) a odkázat se na ně přes file://

TF400917: The current configuration is not valid for this feature. This feature cannot be used until you correct the configuration.

Po změně procesní šablony TFS (změna šablony work item type), se při zobrazení backlogu nebo boardu v tfs web accessu začne zobrazovat chybová zpráva „TF400917: The current configuration is not valid for this feature. This feature cannot be used until you correct the configuration.“ V našem konkrétním případě se problém začal vyskytovat po zavedení nového stavu New k bugu, stav byl nastaven jako výchozí pro nové bugy.

Problém spočívá v chybějícím mapování v Common Process Configuration, které je třeba doplnit.

To se realizuje vyexportováním Common Process Configuration, doplněním potřebných stavů, a importem. Export a import se provede přes witadmin.exe exportcommonprocessconfig/importcommonprocessconfig.

PerfView – ladění v 64-bit prostředí – NGen

PerfView je zajímavý nástroj od Microsoftu, který umožňuje neinvazivní profiling stroje, např. produkčního serveru, tím, že se přihlásí k odběru ETW událostí Windows.

Nevýhodou je, že .NET call-stacky jsou nepoužitelné, pokud profilujeme 64-bit .NET process.

Pomoci se tomu dá zkompilováním assembly/-ies pomocí NGenu:

D:\WebApp\bin>"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen" install MyAssembly.dll /nodependencies /verbose

…NGenovat je potřeba všechny assembly, které nás ve vyhodnocení call-stacku zajímají.

U webového kontextu je potřeba recyklovat AppPool.

Pokud by NGen hlásil chybějící dependencies, lze to dohledat pomocí FusLogVw.exe.

Visual Studio: *.sqlproj is not supported by this version of application

Při otevírání solution ve Visual Studiu (2010 i 2012) s databázovým projektem (myšleno *.sqlproj) se zobrazuje hláška, že projekt nelze otevřít, protože není podporován aplikací.

Z SQL Serveru je třeba doinstalovat komponentu SQL Server Data Tools.

Instaloval jsem z SQL Serveru 2012, při příštím otevření Visual Studia se mi zobrazila nabídka ke stažení a instalace SQL Server Data Tools z internetu, kterou bylo třeba provést (a vypnout VS, jinak instalace neprojde).

Poté již lze pracovat se *.sqlproj projekty.

„StanPackage package did not load correctly“ při porovnání souborů ve Visual Studiu 2012

Stačí jednou otevřít (a zase zavřít) okno View – Other Windows – Code Analysis.

UPDATE: Problém se po pár týdnech vrátil. Zdá se, že problém způsobovala jedna z verzí Code Contracts, provedl jsem reinstalaci (repair) Visual Studia a reinstalaci Code Contracts na nejnovější verzi, problém opět zmizel.

Diff Visual Studio 11 z příkazové řádky + použití s TortoiseSVN

Krásný nový Diff-tool z Visual Studio 11 se dá vyvolávat i externě z příkazové řádky a dá se tak použít například i přímo z TortoiseSVN.

Obecná syntaxe je:

devenv /diff sourceFile targetFile [sourceDisplayName] [targetDisplayName]

Pokud již nějaká instance Visual Studia běží, použije se, jinak se spustí nové.

TortoiseSVN

Pro TortoiseSVN v Settings/Diff Viewer stačí přepnout na „External“ a použít:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe /diff %base %mine %bname %yname

(Cestu si samozřejmě upravte podle sebe.)

…teď už jenom zajistit, jestli se dá takhle vyvolat i merge. Z výpisu devenv /? to zatím nevypadá.

NuGet – poznámky z přednášky

Pár mých poznámek z přednášky o NuGet (Package Manager ve VS od Microsoftu), které zřejmě nebudu dále zpracovávat.

(Microsoft MVP Summit 2012 Seattle)

Links

Tvorba vlastního package

  • NuGet Command Line (ke stažení přes samotný NuGet)
  • VS / New Project / Class Library
    • NuGet.exe pack <.csproj file>
      • vznikne .nupkg
      • je to zip ála .docx
    • NuGet.exe push <.nupkg file>
  • [global: AssemblyInformationVersion(„any string“)]
    • pre-release = číslo verze obsahuje podtržítko

Nastavení vlastního NuGet feedu ve VS11

  • Tools / Library Package Manager / Package Manager Settings / Package Sources
  • dá se tam nastavit FilePath, kde mám své packages
  • nebo použít package „NuGet.Server“
    • Install-Package NuGet.Server
    • stáhne SLN s jednoduchým servříkem

Code Contracts Editor Extensions – konečně contracty v Intellisense tooltipech

Samotné Code Contracts se díky pomalému rewritingu (a ještě pomalejší statické analýze, ale u té je to logické) v praxi stávaly problémem, kdy nejeden vývojář pochyboval, jestli je ochoten obětovat své pohodlí rychlosti buildů na oltář Code Contractů.

Microsoft konečně přichází s dalším logickým krokem, na který všichni tak dlouho čekají, a který by mohl pomyslné váhy opět lehce převážit ve prospěch Code Contracts – po instalaci Code Contracts Editor Extensions (doplňku do Visual Studia 2010) se Vám contracty budou zobrazovat v tooltipových nápovědách IntelliSense.

Windows Live Sync (ex-Mesh): Synchronizace nastavení Visual Studia, ale i Office (Outlook podpisů, auto-correct, atp.)

Poměrně krátce si hraju s Windows Live Sync Beta (dříve Live Mesh) a už mě zaujali dvě příjemné možnosti:

  • synchronizace Office-nastavení – včetně Outlook podpisů, nastavení auto-correct options a dalších věcí, které mě vždy vytáčí do běla, že je musím znovu a znovu nastavovat na čistých instalacích. Synchronizace Office je ve Windows Live Sync vestavěná, stačí ji jen zapnout
  • synchronizace nastavení Visual Studia – stačí použít synchronizaci souborů – nastavení Visual Studia se ukládá do souboru, který určíte v Options / Import and Export Settings / Automatically save my settings to this file: […]. Nasměrujte si soubor do samostatné složky a tu synchronizujte mezi počítači.

Live Sync Beta mi přijde nějaká chudší, než byl Mesh, ale svůj účel snad splní stejně a možná časem i lépe.

VS2010 – Lokalizace do češtiny ke stažení

V rámci snahy o zpřístupnění vývojářských nástrojům „širokým masám“ uvedl dnes Microsoft další ztřeštěnost -Jazykovou sadu pro češtinu, která Vám umožní přepnout prostředí Visual Studia 2010 Professional do češtiny. Lokalizační sada je ke stažení ze stránek MSDN.cz.

Tož přeji hodně štěstí těm, co se při svém prvním sestavení řešení (build solution) dostanou až k sestavení (assembly). Osobně odmítám komunikovat s kýmkoliv, kdo by na mě zkoušel tento kryptojazyk použít a důrazně vyzývám všechny, aby si před komunikací se mnou zjistili anglickou podobu, chtějí-li se vyhnout mému podezření, že jsou marťani.

Osobně mi jako výrazně lepší nápad pro jazykově méně vybavené přišel nástroj CLIP (Captions Language Interface Pack) pro VS2008, který zobrazoval překlady až na najetí myši na danou část UI.