[英]How to point to the right DLLs in different visual studio configurations?
[英]Visual Studio: Different DLLs for configurations
我想為我的應用程序制作 x86 和 x64 版本,因為我使用的一些庫在 x86 和 x64(例如 SQLite)上有所不同。 我為目標操作系統“x64”的發布版本做了一個新配置。
有沒有辦法為配置定義不同的 DLL,例如使用 SQLite.dll 用於 x86 版本和 SQLite64.dll 用於 x64 版本?
您可以向項目文件中的 dll 引用添加條件,但不能使用 Visual Studio 執行此操作 - 您必須手動編輯項目文件。 請參閱此了解如何執行此操作。
您需要做的是僅在 32 位構建配置中包含對 32 位 dll 的引用,並在 64 位構建配置中包含對 64 位 dll 的引用。
您需要項目文件中 dll 引用的條件。
這將導致 Visual Studio 在您更改活動配置時重新檢查條件和參考。
只需為每個配置添加一個條件。
例子:
<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<Reference Include="DLLName">
<HintPath>..\DLLName.dll</HintPath>
</Reference>
<ProjectReference Include="..\MyOtherProject.vcxproj">
<Project>{AAAAAA-000000-BBBB-CCCC-TTTTTTTTTT}</Project>
<Name>MyOtherProject</Name>
</ProjectReference>
</ItemGroup>
哪個VS版本? 你用哪種語言開發? 如果本機(=非托管)C++,實際上所有設置,包括使用的庫,都可以為每個配置進行不同的設置。 在項目屬性對話框的頂部,只需選擇您要修改的配置設置。
對於 csproj 文件,它存在內置關鍵字Choose
和When
。
下面的例子:
<Choose>
<When Condition="'$(Configuration)' == 'DebugConversion'">
<ItemGroup>
<ProjectReference Include="..\OfficeConverer\WordConverter\OfficeConverter.csproj">
<Project>{b0cbxxxx-xxxx-xxxx-xxxx-7f3353aaxxxx}</Project>
<Name>Saur.OfficeConverter</Name>
</ProjectReference>
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<Reference Include="OfficeConverter, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\OfficeConverter.1.0.1\lib\net45\OfficeConverter.dll</HintPath>
</Reference>
</ItemGroup>
</Otherwise>
</Choose>
Bref 說明:在Visual Studio 中選擇“DebugConversion”時,項目會在解決方案中加載一個項目名稱OfficeConverter,否則(例如默認為“Debug”/“Release”)將恢復並加載一個Nuget Dll。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.