Работя с приложение, което включва неуправляван клиентски DLL и управляван COM сървър DLL (което само по себе си беше предизвикателство: Managed Reg-Free COM сървър няма да се активира), и сега се чудя кой е най-добрият начин да поддържам номерата на версиите в синхрон. Тъй като изграждаме както клиента, така и сървъра и се опитваме да поддържаме номерата на версиите на всички наши файлове синхронизирани за всяка компилация, изглежда, че трябва да имам процес, който редактира всички мои манифестни файлове както на клиента, така и на сървъра края на всички мои изолирани COM препратки, преди да се случи пълно изграждане. Има ли по-лесен начин?
Пример (клиентски манифест):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="globals" version="1.0.0.0" />
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="SoftBrands.FourthShift.FSCulture" version="8.0.0.999" publicKeyToken="541b4aff0f04b60a" />
</dependentAssembly>
</dependency>
</assembly>
Сървърен манифест:
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity type="win32" name="SoftBrands.FourthShift.FSCulture" version="8.0.0.999" publicKeyToken="541b4aff0f04b60a" />
<clrClass clsid="{23D4FF3D-EEDF-4F68-AD65-749958EE3B2A}"
name="SoftBrands.FourthShift.FSCulture.FSCulture"
tlbid="{8D480B22-D603-309F-9A26-EA9E9B020207}">
</clrClass>
</asmv1:assembly>
Бих могъл просто да направя глобално търсене и да заменя на version="8.0.0.999"
с текущата версия за всяка компилация, но подозирам, че може да има по-добър начин.