Tengo un proyecto de Visual Studio que se basa en varias referencias de DLL. Este es un ejemplo de esas referencias en mi csproj:¿Cómo hacer que Visual Studio deje de copiar archivos DLL durante la compilación sin mi permiso?
<ItemGroup>
<Reference Include="Class1.Project1">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\bin\Class1.Project1.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Class1.Project2">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\bin\Class1.Project2.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
Sin embargo, cuando incluyo esta clase como una dependencia de proyecto en un proyecto de sitio web, Visual Studio es encontrar las dependencias de las dependencias que se muestran arriba. Durante la compilación, Visual Studio está configurando por defecto la propiedad "Copiar local" en "Verdadero" y copiando estas dependencias en el directorio ~/bin de mi sitio web.
Esto, a su vez, está sobrescribiendo las versiones de los archivos DLL que ya existen en este directorio. Esto hace que el siguiente error:
Could not load file or assembly 'Class5.Project5, Version=3.6.1861.2, Culture=neutral, PublicKeyToken=dfeaee0e3978ac79' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
¿Cómo hago Visual Studio defecto, la indicación "Copia Local" a "falso" para todo ? No quiero que Visual Studio copie los archivos DLL automáticamente durante la compilación. Tampoco quiero atar mi compilación a muy versiones específicas de una DLL.
VS no requiere que cada proyecto tenga un único directorio de salida. Donde trabajo tenemos más de 1,000 proyectos que dan salida a todo en un solo directorio bin. (El truco consiste en crear sus referencias desde este directorio de salida.) Usamos nant para llenar los requisitos previos de compilación y limpiar el directorio de salida entre compilaciones de depuración y liberación. Probablemente no sea una mejor práctica, pero ciertamente funciona. –
Muy interesante! Cuando probé esto, con VS2003, encontré que la compilación fallaba porque los archivos en el directorio de salida estaban en uso, mantenidos abiertos por un proyecto cuando otro estaba tratando de aclarar las cosas. ¿Qué versión de Visual Studio estás usando? – Bevan