Как вы делитесь кодом между проектами / решениями в Visual Studio? - PullRequest
214 голосов
/ 12 июля 2009

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

  • Какой лучший способ сделать это с Visual Studio 2008?
  • Присутствует ли проект в нескольких решениях?
  • Есть ли у меня отдельное решение для отдельного куска кода?
  • Может ли решение зависеть от другого?

Ответы [ 16 ]

4 голосов
/ 28 сентября 2012

Существует очень хороший пример использования «добавления существующих ссылок на файлы» при повторном использовании кода в проектах, когда вам нужно ссылаться и поддерживать разные версии зависимых библиотек.

Создание нескольких сборок со ссылками на разные внешние сборки нелегко сделать без дублирования кода или использования трюков с контролем исходного кода.

Я считаю, что проще всего поддерживать один проект для разработки и модульного тестирования, а затем создавать проекты «сборки» с использованием существующих файловых ссылок, когда вам нужно создать сборки, ссылающиеся на разные версии этих внешних сборок.

4 голосов
/ 24 августа 2009

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

3 голосов
/ 31 декабря 2015

Два основных этапа:

1- Создание C ++ dll

В визуальной студии

New->Project->Class Library in c++ template. Name of project here is first_dll in 
visual studio 2010. Now declare your function as public in first_dll.h file and 
write the code in first_dll.cpp file as shown below.

Код файла заголовка

// first_dll.h

using namespace System;

namespace first_dll 
{

public ref class Class1
{
public:
    static double sum(int ,int );
    // TODO: Add your methods for this class here.
};
}

Файл Cpp

//first_dll.cpp
#include "stdafx.h"

#include "first_dll.h"

namespace first_dll
{

    double Class1:: sum(int x,int y)
    {
        return x+y;
    }

 }

Проверить это

**Project-> Properties -> Configuration/General -> Configuration Type** 

эта опция должна быть Динамическая библиотека (.dll) и создать решение / проект сейчас.

first_dll.dll файл создается в Папка отладки

2- Связывание в проекте C #

Открыть C # проект

Rightclick on project name in solution explorer -> Add -> References -> Browse to path 
where first_dll.dll is created and add the file.

Добавьте эту строку вверху в проекте C #

Using first_dll; 

Теперь к функции из dll можно получить доступ с помощью оператора ниже в некоторой функции

double var = Class1.sum(4,5);

Я создал dll в проекте c ++ в VS2010 и использовал его в проекте VS2013 C #. Это хорошо работает.

2 голосов
/ 13 июня 2018

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

2 голосов
/ 04 августа 2013

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

1 голос
/ 21 сентября 2018

Теперь вы можете использовать Общий проект

Общий проект - отличный способ обмена общим кодом между несколькими приложение, которое мы уже испытали с типом совместного проекта в Visual Studio 2013 как часть универсального приложения Windows 8.1 Разработка, но с Visual Studio 2015 это отдельная новинка Шаблон проекта; и мы можем использовать его с другими типами приложений, таких как Консоль, рабочий стол, телефон, магазин приложений и т. Д. Этот тип проекта очень полезно, когда мы хотим поделиться общим кодом, а также логикой в качестве компонентов для нескольких приложений на одной платформе. Это также позволяет получить доступ к API, активам и т. Д. Для конкретной платформы

enter image description here

для получения дополнительной информации проверьте это

...