SQLite x86 / x64 Assemblies per MSBUILD auswählen

Mit dieser kleinen Änderung in der .csproj-Datei kann man SQLite unter .NET zum Nobrainer bei der Installation von Webprojekten machen:

Wer SQLite nicht kennt, dem sei gesagt, dass SQLite leider nativ programmiert ist und für x86 und x64 separate DLLs ausliefert. Beim lokalen Entwickeln mit dem Visual Studio Development Server wird der Code als x86 ausgeführt, aber beim Installieren auf dem Produktivserver wird wahrscheinlich eher die x64-Variante benötigt. Die DLLs manuell austauschen kann man ja einmal machen, aber auf die Dauer ist Handarbeit natürlich immer zu vermeiden!

Deshalb habe ich einen sauberen Weg gesucht, dies beim Build einzustellen.

Das Problem kann man über „Klicken“ in Visual Studio leider nicht lösen, sondern muss die Projektdatei mit dem XML-Editor öffnen und selbst Hand anlegen.

Das ist gar nicht so schwer: Man muss lediglich nach dem Tag <Reference> mit dem Attribut Include=“System.Data.SQLite….“ suchen, diesen duplizieren, sodass je die x86 und x64-Variante referenziert wird und dann das Attribut Condition wie im Screenshot hinzufügen.

Falls man noch weitere Konfigurationen hat, z.B. „Debug“, „QA“, „Release“, muss man für diese natürlich jeweils einzeln entscheiden, ob man die x86 oder x64-Variante benötigt.