Пытаться лучше понять общие проекты и использовать их в различных решениях - PullRequest
0 голосов
/ 28 марта 2019

Несмотря на то, что Shared Project существует с Visual Studio 2015 (возможно, уже до VS 2013 update2), я только недавно узнал о них. Сегодня я потратил время, пытаясь научиться использовать их, следуя учебнику, который нашел Общий проект: впечатляющая особенность Visual Studio 2015 Preview . Однако одна вещь, которую автор сделал в этом уроке, которая не будет работать для нас, это то, что он создал общий проект и 3 других проекта, все в рамках одного решения. Конечно, вы можете сделать это, но на практике мы, вероятно, захотим создать общий проект в каком-либо решении, а затем со временем включить этот общий проект в другие решения.

Итак, я вместо того, чтобы поместить приложение Windows Forms в то же решение, что и автор этого поста C # Corner, я создал новое решение с проектом Windows Forms, а затем попытался добавить Shared Project. из первого решения. Сначала я попытался добавить файл .sln. Это с треском провалилось. Затем я попытался добавить файл .shproj ко второму решению. Это тоже с треском провалилось.

Далее я поделился здесь на SO для способов решения этой проблемы. Я нашел 2 сообщения: Добавление ссылок в общий (.shproj) проект и Как добавить ссылку на проект Shared Code (.shproj) из другого проекта . Второй дал мне идею. Я решил, что просто добавлю Shared Project из первого решения во второе решение, щелкнув второе решение в Solution Explorer, а затем выполняя «Add Existing Project». Это сработало.

Но мне интересно, это то, как вы должны использовать общие проекты? Если так, то мне кажется, что я мог бы с таким же успехом создать простую библиотеку классов в первом решении, а затем добавить этот проект библиотеки классов во второе решение. Есть ли в общих проектах что-то, что делает их по своей природе более удобными для использования, если вы добавляете общий проект в другое решение, а не просто добавляете обычный проект библиотеки классов в решение?

1 Ответ

2 голосов
/ 28 марта 2019

Библиотека классов компилируется в свою собственную DLL, и ваш исходный проект ссылается на эту DLL, тогда как проект, использующий Shared Project, будет компилироваться в одну сборку. Один сценарий, который я мог бы придумать с общими проектами, заключается в том, что у вас может быть единая база кода, но есть разделы кода для платформы, помеченные директивами.

...