мультиплатформенный COM без регистрации с приложением .NET - PullRequest
1 голос
/ 11 марта 2010

У меня есть приложение .NET, которое использует компонент COM. Само приложение «Любой процессор», но COM-компонент имеет 32-разрядную и 64-разрядную версии.

В статье http://msdn.microsoft.com/en-us/magazine/cc188708.aspx ясно, что делать для COM без регистрации. Но что нужно сделать для:

  • Приложение "Любой процессор"
  • зависимая сборка:
  • Assembly1 использует COM-компонент "Foo", foo имеет 32-битную и 64-битную версию с тем же именем файла (мы не создавали Foo, это было сделано третьей стороной).

Один из способов работы - создание отдельных манифестов приложений для 32-разрядной версии и для 64-разрядной версии. Таким образом, каждый файл манифеста может содержать правильный размер и хэш для компонента COM. Я бы хотел этого избежать.

Возможно ли как-то настроить это в Visual Studio без хлопот? Возможно ли иметь одну папку (с подпапками x64, x86 для компонента COM), где приложение будет беспрепятственно работать на обеих платформах?

Будем весьма благодарны за любые указатели в правильном направлении! Я, наверное, просто пропускаю какой-то простой переключатель или настройку где-то.

1 Ответ

0 голосов
/ 11 марта 2010

Элемент processorArchitecture позволяет вам написать <assemblyIdentitiy>, который является специфическим. Добавьте два из них, один, который использует «x86», другой «amd64». Это задокументировано в этой (очень плохой) статье библиотеки MSDN .

...