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:TFSMySolutionMySolution.sln” (Build target) (1) ->
“W:TFSMySolutionDatabaseDatabase.dbproj” (default target) (3) ->
(DspBuild target) –>
C:Program Files (x86)MSBuildMicrosoftVisualStudiov9.0TeamDataMicrosoft.Data.Schema.SqlTasks.targets(58,5):
Build error TSD00259: File C:Program FilesMicrosoft Visual Studio 9.0VSTSDBExtensionsSqlServer2008DBSchemasmaster.dbschema does not exist.
C:Program Files (x86)MSBuildMicrosoftVisualStudiov9.0TeamDataMicrosoft.Data.Schema.SqlTasks.targets(58,5):
Build error TSD00259: File C:Program FilesMicrosoft Visual Studio 9.0VSTSDBExtensionsSqlServer2008DBSchemasmsdb.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.

Technorati-címkék: ,,,
Reklámok

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s