Как можно указать, что Excel использует .NET Framework версии 2.0 при запуске .NET-библиотек, кроме добавления файла excel.exe.config в папку Office Binary?
Наше приложение работает в Excel и использует VBA, который выполняет вызовы в управляемый код в сборках .NET. Я считаю, что учебник может сделать это, добавив файл excel.exe.config в двоичный каталог Office, содержащий:
<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
Эта опция неприемлема для наших клиентов, во-первых, потому что они просто не позволяют нам добавлять файлы в каталог Office, и даже если бы они сделали это, мы не могли бы рискнуть взломать какое-либо приложение, используя .NET v1.1, который используется по умолчанию Выбор Excel.
Решение, которое, как мы думали, сработало бы, состояло в том, чтобы скопировать файл Excel.exe в каталог наших собственных приложений из каталога Office клиента, добавить туда файл конфигурации и выполнить этот файл. Это работает хорошо, но у нас возникают серьезные проблемы с установкой, когда сценарий установки не может найти правильную версию Excel. Плюс это отвратительный клудж, во-первых.
Любые идеи приветствуются. Интересно, может ли работать слой неуправляемого (не .NET) в DLL? Некоторые советы о том, как это сделать, или более простая альтернатива будут оценены, поскольку это нетривиально.
Связанный:
.NET app.config вопрос