Build error TSD00259: dbschema does not exist

Az egyik projektünkben a Data Dude-ot használjuk az adatbázis szkriptek kezelésére és azt kell mondanom, hogy egészen bevált. Azonban x64-es gépen nem sikerült lefordítanunk az x86-on tökéletesen működő projektet.

Akinek van VS 2008 Team System változata, annak feltétlenül érdemes kipróbálni a Data Dude-ot, teljes nevén a Visual Studio Team System 2008 Database Editiont, mert nagyon praktikus funkciók vannak benne az adatbázis forrásának kezeléséhez. Aki pedig szeret build környezetet automatizálni, annak érdemes megnéznie, mit tud a Data Dude Power Tools. Ráadásul ezek a funkciók a VS 2010-től kezdve már részben a Professional változattól is elérhetőek lesznek, érdemes minél előbb hozzászokni.

Az egyik kedves szolgáltatása ennek a projekt típusnak, hogy ismeri az SQL Server beépített adatbázis objektumait, ahhoz képes IntelliSense-t adni, hivatkozásokat ellenőrizni stb. Ehhez fel kell venni az objektumokat leíró .dbschema fájlokat referenciaként a projektbe:

Database references

Ez tökéletesen működött is x86-os gépen, ám amikor ugyanezt a projektet x64-en akartam fordítani, az alábbi hibaüzenetet kaptam:

"W:\TFS\MySolution\MySolution.sln" (Build target) (1) ->
"W:\TFS\MySolution\Database\Database.dbproj" (default target) (3) ->
(DspBuild target) –>
    C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5):
Build error TSD00259: File C:\Program Files\Microsoft Visual Studio 9.0\VSTSDB\Extensions\SqlServer\2008\DBSchemas\master.dbschema does not exist.
    C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5):
Build error TSD00259: File C:\Program Files\Microsoft Visual Studio 9.0\VSTSDB\Extensions\SqlServer\2008\DBSchemas\msdb.dbschema does not exist.

És milyen igaza van, x64-en tényleg nincsenek .dbschema fájlok a C:\Program Files mappában, mert a C:\Program Files (x86)\ mappában vannak. A megoldás a project fájl kézi átírása. A hibás rész ez:

    <ArtifactReference Include="C:\Program Files\Microsoft Visual Studio 9.0\VSTSDB\Extensions\SqlServer\2008\DBSchemas\master.dbschema">

Írjuk át erre:

    <ArtifactReference Include="$(VSTSDBDirectory)\Extensions\SqlServer\2008\DBSchemas\master.dbschema">

Az msdb.dbschema fájllal ugyanezt kell eljátszanunk, utána fordulni fog a projekt mindkét architektúrán. Érdekes, hogy az Microsoft.SqlTypes.dbschema fájl útvonalát sikerült korrektül rögzítenie, csak a master és az msdb problémás.



Balássy György (MS RD, ASP.NET MVP, MCTS)

Balássy György (MS RD, ASP.NET MVP, MCTS) Villamosmérnök, a BME Automatizálási és Alkalmazott Informatikai Tanszékén webportálok fejlesztését oktatja. 2000 óta foglalkozik a Microsoft .NET platformjával, melynek meghonosításában jelentős szerepet vállalt előadóként, konzulensként és A .NET Framework és programozása című könyv társszerzőjeként. Az MSDN Kompetencia Központon belül a Portál Technológiák Csoport vezetője, szakterülete web alapú rendszerek fejlesztése és üzemeltetése. 2004-ben Magyarországon elsőként kapta meg a Most Valuable Professional címet, majd 2005 óta a Microsoft magyarországi regionális igazgatója. Publikációi a Technet Magazinban, az MSDN Kompetencia Központ honlapján és szakmai blogjában olvashatóak.

2010.01.21. 10:05:49 | Permalink | Hozzászólások: 0 | Tárgyszavak: ,


  • TSQL újdonságok–Order by

    Kovács Ferenc Ember nem is gondolná, hogy ilyen alapelemekhez is hozzányúlnak, de  az SQL 2008-as szabványban történtek változások. Így muszáj volt (igazából nem, mivel a szabványok maradéktalan támogatása nem erőssége egyik adatbázis platformnak sem) és bekerült az SQL Server 2012-be néhány módosítás ezen a téren is. Tovább »
  • Áttérés Visual Studio 2008 RC-ről RTM-re

    Benedek Zoltán Többen tapasztaltuk, hogy a Visual Studio 2008 RC uninstall nem működik tökéletesen. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások