xrange возвращает итератор и только сохраняет одно число в памяти за один раз. диапазон сохраняет весь список чисел в памяти.
В этой статье показано, как выполнить активацию COM-компонентов без регистрации. Может быть, это поможет: http://msdn.microsoft.com/en-us/library/ms973913.aspx
Как уже указывал Джон Фишер , вы ищете COM-взаимодействие без регистрации . По этому поводу уже есть много вопросов, ищите 'tag at hand' regfreecom и тесно связанный тег sxs .
Однако вы легко увидите, что это может быть непростой задачей, в частности:
Подводя итог, я хотел бы подчеркнуть, что «COM-взаимодействие без регистрации» может быть очень полезным и значительно упростить многие сценарии.
Похоже, это невозможно - Visual Studio будет смотреть только на GUID, упомянутый в справочнике, не обращая внимания на путь, указанный там.
У нас была аналогичная проблема с наш сервер ежедневной сборки - COM-клиент не будет компилироваться, если COM-сервер не зарегистрирован. Мы просто добавили регистрацию / отмену регистрации в последовательность сборки - он регистрирует (regsv32) компонент, затем VS запускается из командной строки и сразу после завершения VS отменяет регистрацию компонента (regsvr32 -u). Работает без сбоев.
Когда вы ссылаетесь на COM-DLL, Visual Studio автоматически создает для нее сборку взаимодействия. Я считаю, что ручное управление этим процессом - отличный способ разделить сборки COM и .NET.
tlbimp.exe
. См. MSDN для параметров командной строки. Как только вы это сделаете, у вас больше не будет чтобы COM-DLL была зарегистрирована на компьютере при сборке решения .NET, требуется только ваша сборка взаимодействия.
Сборка взаимодействия может оставаться в папке без изменений навсегда до тех пор, пока (а) COM-DLL не нарушит двоичную совместимость или (б) изменение интерфейса COM, которое фактически использует код .NET.
Если у вас есть разные версии COM DLL, которые все бинарно совместимы, то скомпилируйте сборку взаимодействия с самой ранней версией, содержащей интерфейсы, необходимые для кода .NET. После этого вам не придется обновлять сборку взаимодействия для разных версий.
Кроме того, вам не нужно включать COM-DLL в ваш установщик, если вы можете предположить, что COM-DLL уже будет установлена на целевая машина.