2009-05-12 16 views
6

Obecnie nasz kod .net nie jest specyficzny dla procesora, ale zależy od bibliotek (Oracle/ODP.Net), które są. Znaleźliśmy rozwiązanie, w którym bezpośrednio edytujemy plik csproj i umieszczamy referencje w grupach pozycji z klauzulą ​​warunku opartą na naszej wybranej konfiguracji kompilacji. Mamy 32-bitowe debugowanie/wydanie i 64-bitowe debugowanie/wydanie, a poprawne złożenia są referencjami podczas budowania tej konfiguracji.Referencje warunkowe

To działa mniej więcej w czasie kompilacji, ale powoduje różne rodzaje wackiness w Visual Studio (2008). Końcowym rezultatem jest to, że ten sam zespół pojawia się cztery razy pod odnośnikami, a trzy mają żółty wykrzyknik. Generuje również 76 ostrzeżeń, których nie mogę się pozbyć. Staramy się wycelować w 0 ostrzeżeń, ponieważ chcemy wiedzieć, kiedy pojawią się nowe, więc jest to problem.

Czy ktoś wie o rozwiązaniu warunkowych odniesień, które pozwalają mu wyglądać jak pojedynczy odnośnik (który tak naprawdę jest) i nie wypełnia moich ostrzeżeń w czasie kompilacji?

Odpowiedz

1

Jedyną rzeczą, która skacze do głowy jest o 4 oddzielne pliki projektu ... ale przed panikę o konieczności utrzymania 4 pliki, gdy kiedykolwiek dodać klasę, można użyć innego csproj sztuczki tutaj:

<Compile Include="**\*.cs" /> 

który (IIRC) mówi "dołącz wszystkie pliki cs na dowolnym poziomie w strukturze folderów".

1

Znaleźliśmy odpowiedź, która była nieco inna niż to, czego szukaliśmy, ale lubię ją. Jeśli dodać do tego pliku konfiguracyjnym pod runtime-> AssemblyBinding

 
<dependentAssembly> 
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" /> 
<bindingRedirect oldVersion="2.111.6.20" newVersion="2.111.6.0" /> 
</dependentAssembly> 

Następnie wersje 64-bitowe i 32-bitowe działają w tym samym kompilacji. Jedyne, co musimy zrobić, to , a nie skopiować lokalnie Oracle.DataAccess.dll podczas instalacji i pozwolić, aby została ściągnięta z GAC.

Dzięki!