Branko Dimitrijevic說:「我相信你可以爲SQLite做類似的事情。」這是正確的。 :)
有同樣的問題,我發現羅德尼的問題和Branko的答案,並嘗試自己。對於任何人誰希望看到我工作的SQLite實現,在這裏你去:
<Choose>
<When Condition="'$(Platform)' == 'x64'">
<ItemGroup>
<Reference Include="System.Data.SQLite, Version=1.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>System.Data.SQLite\x64\System.Data.SQLite.dll</HintPath>
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)' == 'x86'">
<ItemGroup>
<Reference Include="System.Data.SQLite, Version=1.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>System.Data.SQLite\x86\System.Data.SQLite.dll</HintPath>
</Reference>
</ItemGroup>
</When>
</Choose>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
當然,你可以命名HintPath任何你喜歡。
我發現這是一個完美的解決方案:我可以維護一個項目,並根據需要快速在目標平臺之間切換。唯一潛在的缺點是我無法在解決方案資源管理器中看到參考。但是這對於整體功能來說是一個小的代價。
似乎到目前爲止,已經確認沒有任何ONE DLL選項可以支持任何CPU平臺目標解決方案,並且SQLite作爲依賴項。 –
你應該從nuget安裝它。請參考[本答案] [1]。 [1]:http://stackoverflow.com/a/19623876/2550529 – SepehrM
的NuGet並不能真正解決手頭的問題,從2011年8月,其已經回答了這個非常非常老問題。此外,NuGet在所有開發商店都不是一種可能性,即使它是問題的最佳解決方案,也不總是一種選擇。多年來,我已經發展成爲一個更好的解決方案,它允許包裝程序集是任何CPU,並在運行時動態地正確支持32位和64位SQLite風格。然而,這是一箇舊的封閉問題,所以人們應該快速轉向Q&A,因爲軟件老化很快。 –