Таким образом, чтобы ответить на некоторые скриншоты:
Сначала создать два проекта. Проект, который является проектом запуска (в вашем примере и в моем, который будет Project1), должен знать о другом решении. Для этого нам нужно добавить ссылку на проект, щелкните правой кнопкой мыши на Проект1 и нажмите на кнопку "Добавить ссылку ...
Затем используйте опцию решение в боковой панели, нажать кнопку флажок на Project2
И тогда вы можете добавить проект в вашем коде, используя Project2.идентификатор Form1, как таковой
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim frmOtherProject As New Project2.Form1
frmOtherProject.Show()
End Sub
End Class
или, в случае, если форма во втором проекте не предвзятое имя (form1 в настоящее время существует в 2 раза, так что позволяет переименовать его в form2), вы можете импортировать второй проект и использовать его классы непосредственно, как таковой
Imports Project2
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim frmOtherProject As New Form2
frmOtherProject.Show()
End Sub
End Class
я использовал Visual Studio 2012 в качестве основы, но принцип должен быть таким же;)
Сложение
я мог бы указать на то, что это не будет ваш типичный стиль ссылки на проекты, в основном вы будете разделять приложения на уровни беспокойства, добавив, например:
- entitylayer, который содержит ваши модели, и ссылается на все остальные уровни (решения)
- Datalayer, который может загружать/сохранять ваши модели и обслуживать их, на это ссылается «уровень бизнес-логики» и ссылается на сам объект сущности
- Уровень бизнес-логики, который ссылается на datalayer и entitylayer и ссылается на уровень представления, он ничего не знает о какой базе данных вы используете, он просто служит посредником между вашим уровнем представления (который является тем, что видит пользователь) и datalayer, и обрабатывает только сущности, определенные на вашем уровне сущности.
- И, наконец, слой презентации, который ссылается на уровня сущности и уровня бизнес-логики, ему не нужно знать, какая база данных обслуживает данные, но только предоставляет данные в полезном виде для своих пользователей.
Существует, конечно, множество способов организовать ваше приложение в значимой структуре, но я считаю, что этот пример является хорошим примером того, как вы можете структурировать свое приложение значимым образом.
ОБНОВЛЕНИЕ
Как обновление, получение решений для совместного использования кода, не должно быть так сложно, если вы напишете свой код, чтобы его можно было повторно использовать. Разделяя логику и более сложный код внутри библиотеки классов, которые могут использоваться для обоих решений, вам нужно только переписать слой Presentation (как вы показываете данные). И вы можете сделать это более конкретно для среды, с которой вы хотите работать.
В конце концов, ваш проект Outlook Addin Solution и ваш проект форм Windows могут совместно использовать код, который запрашивает ресурсы, или загружает данные, или выполняет некоторые другие сложные вычисления, и единственный код, который вы должны «размножить», - это то, как вы показываете его на экране. Таким образом, в соответствии с окружающей средой вы можете лучше представить данные, специфичные для этой среды, но поделитесь логикой и моделями, которые вы используете в обеих (или более) средах.
Таким образом, вы время разработки вырублены, и ваш код становится менее подвержены ошибкам, потому что вы не имеете одинаковый код несколько раз, в качестве примера, см следующего скриншота:
Как вы можете видеть, существует общая библиотека, на которую ссылается внешний вид и приложение формы окна. Ни приложение Forms, ни приложение Outlook не знают друг о друге, и они также не должны, поскольку они практически не имеют никакого отношения к другому.
Итак, хотя мое последнее обновление не отвечает на ваш вопрос, я по-прежнему считаю, что это лучший способ организовать ваш код. Если позже вы захотите сделать сайт повторно использующим код, который вы сделали, вам нужно только сделать дополнительный слой презентации и снова использовать код из SharedLibrary.
Какой проект является вашим проектом запуска? – Shar1er80
Project1 - при запуске открывается Form1 Project1. – pdsd
Вы добавили Project2 в качестве ссылки на Project1? Я бы предположил, что в Project1 у вас будет «Dim p2Form2 As New Project2.Form1» – Shar1er80