Witaj na Zine.net online Zaloguj się | Rejestracja | Pomoc

Dynamiczne referencje do bibliotek w Visual Studio

Często, w trakcie korzystania z zewnętrznych bibliotek w naszym  projekcie, pojawia się pewien dylemat. Czy dołączone biblioteki, powinny być skompilowane jako "debug" czy jako "release" ?  Zamiast podejmować trudną decyzję zróbmy sobie proste rozwiązanie.

W Automatyzacja projektu z MSBuild-em - 1. Struktura proponowałem przechowywanie "third-party libraries" w katalogu "lib". Teraz dodatkowo zróbmy tam podział na "debug" i "release". Przykład z bibliotekami z IronRuby, które wykorzystuje w aktualnym projekcie:

  • lib
    • net
      • 2.0
        • IronRuby
          • debug
          • release

Struktura jest na tyle oczywista że chyba nie trzeba opisywać.

Teraz w naszym pliku projektu ".csproj" wystarczy tak zmodyfikować referencje do bibiliotek:

<ItemGroup>
  <Reference Include="IronRuby">
    <SpecificVersion>False</SpecificVersion>
    <HintPath>..\..\..\lib\net\2.0\IronRuby\$(Configuration)\IronRuby.dll</HintPath>
  </Reference>
  <Reference Include="IronRuby.Libraries">
    <SpecificVersion>False</SpecificVersion>
    <HintPath>..\..\..\lib\net\2.0\IronRuby\$(Configuration)\IronRuby.Libraries.dll</HintPath>
  </Reference>
  <Reference Include="Microsoft.Scripting">
    <SpecificVersion>False</SpecificVersion>
    <HintPath>..\..\..\lib\net\2.0\IronRuby\$(Configuration)\Microsoft.Scripting.dll</HintPath>
  </Reference>
  <Reference Include="Microsoft.Scripting.Core">
    <SpecificVersion>False</SpecificVersion>
    <HintPath>..\..\..\lib\net\2.0\IronRuby\$(Configuration)\Microsoft.Scripting.Core.dll</HintPath>
  </Reference>
  <Reference Include="System" />
  <Reference Include="System.Data" />
  <Reference Include="System.Xml" />
</ItemGroup>

Jezeli nasz projekt jest kompilowany w trybie "Debug", wówczas kompilacja odbędzie się z wykorzystaniem innych bibliotek z podkatalogu "debug". Analogicznie z "Release".

Opublikowane 13 sierpnia 2008 23:37 przez rod
Filed under:

Komentarze:

Brak komentarzy
Komentarze anonimowe wyłączone