Tengo dos referencias a un ensamblaje SQLite, uno para 32 bits y otro para 64 bits, que se ve así (este es un proyecto de prueba para tratar de deshacerse de la advertencia, no se cuelgue en el caminos):Referencias condicionales en el proyecto .NET, ¿es posible eliminar la advertencia?
<Reference Condition=" '$(Platform)' == 'x64' " Include="System.Data.SQLite, Version=1.0.61.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=AMD64">
<SpecificVersion>True</SpecificVersion>
<HintPath>..\..\LVK Libraries\SQLite3\version_1.0.65.0\64-bit\System.Data.SQLite.DLL</HintPath>
</Reference>
<Reference Condition=" '$(Platform)' == 'x86' " Include="System.Data.SQLite, Version=1.0.65.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<SpecificVersion>True</SpecificVersion>
<HintPath>..\..\LVK Libraries\SQLite3\version_1.0.65.0\32-bit\System.Data.SQLite.DLL</HintPath>
</Reference>
esto produce la siguiente advertencia:
Warning 1 The referenced component 'System.Data.SQLite' could not be found.
¿es posible que me deshaga de esta advertencia?
Una forma en que lo he mirado para configurar mi proyecto para ser de 32 bits cuando desarrollo, y dejar que la máquina de compilación arregle la referencia cuando compila para 64 bits, pero esto parece un poco incómodo y probablemente propenso a errores
¿Alguna otra opción?
La razón por la que quiero deshacerme de ella es que la advertencia aparentemente está siendo recogida por TeamCity y marcada periódicamente como algo que necesito investigar, por lo que me gustaría deshacerme completamente de ella.
Editar: Por la respuesta, he intentado esto:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
...
<SqlitePath>..\..\LVK Libraries\SQLite3\version_1.0.65.0\32-bit</SqlitePath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
...
<SqlitePath>..\..\LVK Libraries\SQLite3\version_1.0.65.0\32-bit</SqlitePath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
...
<SqlitePath>..\..\LVK Libraries\SQLite3\version_1.0.65.0\64-bit</SqlitePath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
...
<SqlitePath>..\..\LVK Libraries\SQLite3\version_1.0.65.0\64-bit</SqlitePath>
</PropertyGroup>
y luego en mi referencia:
<Reference Include="System.Data.SQLite">
<SpecificVersion>False</SpecificVersion>
<HintPath>$(SqlitePath)\System.Data.SQLite.DLL</HintPath>
</Reference>
Esto se deshizo de la advertencia, pero ¿es correcto ?
He editado mi respuesta con lo que creo que es correcto, ¿puedes mirarlo y decirme si eso es lo que querías decir? –
@Lasse: Eso parece ser correcto. – Richard