Программное обеспечение, в котором я работаю для создания программного обеспечения для школ, и поэтому наши клиентские машины обычно запираются таким образом, что нам совершенно невозможно установить что-либо на нем..NET Object из VB6 без использования regasm.exe?
Наша старая система в основном основана на (очень большом) проекте MS Access, и поэтому она сталкивается с проблемами доступа, просто запускаясь из локальной папки.
Мне поручено переделать некоторую систему в C# .NET - однако на промежуточных этапах было бы неплохо иметь возможность запускать проект доступа .NET.
Сегодня я играл с com interops в течение нескольких часов, но afaik единственный способ сделать эту работу - зарегистрировать их с помощью RegAsm.exe - и, к сожалению, это не вариант в клиентских средах.
Я пробовал GetObject/CreateObject, но не работает, ссылаясь на файл dll или tlb, есть ли другой способ, которым это может быть достигнуто?
Идеальное решение для размещения dll com interop в том же каталоге, что и проект Access.
И да, прежде чем кто говорит, я знаю, MS Access является злом и подходит только для очень маленьких проектов, - но я только приехал сюда 4 месяца назад ...
Marlon
Вы можете «знать» это, но это неправда. Доступ не является злом и не подходит для крупных проектов. Он просто должен использоваться надлежащим образом. В ваших комментариях подразумевается, что Access даже не используется, просто Jet, так что предполагает уровень замешательства, который, вероятно, затруднит решение ваших проблем. То есть, если вы даже не понимаете важных различий в инструментах, которые вы используете, маловероятно, что вы сможете кодировать приложение, которое работает с теми инструментами, для которых ваш уровень понимания довольно туманный. –
Читая ваши комментарии ниже, вы говорите, что вы «работаете с проектом MS Access, не скомпилирован VB6.exe», поэтому я смущен. Это приложение VB6 или приложение Access? Если последнее, вы должны иметь возможность обойти многие проблемы, не создавая ссылок в приложении Access и используя последнее связывание. Но ваши комментарии к CreateObject обычно указывают на то, что ваша проблема заключается в том, что вы не можете регистрировать необходимые компоненты, чтобы это не помогло. И мне непонятно, в чем проблема, т. Е. Является ли это проблемой .NET или проблемой доступа. Короче говоря, недостаточно информации, чтобы действительно дать ответ. –
@David Я думаю, проблема в том, что Марлон хочет вызвать объекты C# из приложения Access. Но он не может зарегистрировать свои COM-совместимые объекты C#, потому что у пользователей нет разрешений. Вопрос в том, есть ли какой-либо метод, чтобы получить проект Access для вызова объекта C#, не требуя при этом прав администратора для регистрации объектов C#. – MarkJ