Межпроектная библиотека C#
От: Ankir  
Дата: 22.01.10 12:27
Оценка:
В C# при добавлении файла в проект он копируется в папку проекта, таким образом создается копия исходного файла.В то же время в C++ и Delphi в проект добавляется ссылка на исходный файл и нового экземпляра не создается.
Как можно добиться того же эффекта в C#?
P.S. При программировании C++ и Delphi мы использовали общую для нескольких проектов библиотеку написанных нами классов, которая хранилась отдельно от проектов и дополнялась и изменялась по мере выполнения проектов, изменения в этой библиотеке вносились прямо из разрабатываемых проектов и распространялись на все проекты.

22.01.10 19:46: Перенесено модератором из '.NET' — AndrewVK
Re: Межпроектная библиотека C#
От: 1stein Украина  
Дата: 22.01.10 12:31
Оценка:
Здравствуйте, Ankir, Вы писали:
...

Adding an Existing Item as a Link
Will code C# for food
Re: Межпроектная библиотека C#
От: samius Япония http://sams-tricks.blogspot.com
Дата: 22.01.10 12:32
Оценка:
Здравствуйте, Ankir, Вы писали:

A>В C# при добавлении файла в проект он копируется в папку проекта, таким образом создается копия исходного файла.В то же время в C++ и Delphi в проект добавляется ссылка на исходный файл и нового экземпляра не создается.

A>Как можно добиться того же эффекта в C#?

В MS VisualStudio такого эффекта можно добиться если повнимательнее рассмотреть кнопку Add в диалоге "Add Existing Item" и нажать не на кнопку, а на стрелочку сбоку кнопки (там будет пункт Add as link).
Re: Add as link
От: Qbit86 Кипр
Дата: 22.01.10 12:32
Оценка:
Здравствуйте, Ankir, Вы писали:

A>В C# при добавлении файла в проект он копируется в папку проекта, таким образом создается копия исходного файла. В то же время в C++ и Delphi в проект добавляется ссылка на исходный файл и нового экземпляра не создается.

A>Как можно добиться того же эффекта в C#?

Правый клик по проекту в solution explorer'е, «Add > Existing item...», указать требуемый файл и нажать не Add, а ▼, в меню выбрать «Add As Link».
Глаза у меня добрые, но рубашка — смирительная!
Re: Межпроектная библиотека C#
От: 0x7be СССР  
Дата: 22.01.10 12:35
Оценка: 2 (2) +2
Здравствуйте, Ankir, Вы писали:

A>В C# при добавлении файла в проект он копируется в папку проекта, таким образом создается копия исходного файла.В то же время в C++ и Delphi в проект добавляется ссылка на исходный файл и нового экземпляра не создается.

A>Как можно добиться того же эффекта в C#?
Такого эффекта можно добиться выбрав "Add as Link" при добавлении файла в проект.
Но если это тебе надо для того, что ниже описано, то ты выбрал неправильный путь.

A>P.S. При программировании C++ и Delphi мы использовали общую для нескольких проектов библиотеку написанных нами классов, которая хранилась отдельно от проектов и дополнялась и изменялась по мере выполнения проектов, изменения в этой библиотеке вносились прямо из разрабатываемых проектов и распространялись на все проекты.

Для того, что бы решить эту задачу, надо сделать отдельную Class Library, включить в неё библиотчные классы и подключать ее в Project References тех проектов, которые их используют.
Re: Межпроектная библиотека C#
От: Mr.Cat  
Дата: 22.01.10 12:38
Оценка: 1 (1)
Здравствуйте, Ankir, Вы писали:
A>Как можно добиться того же эффекта в C#?
Общую часть вынести в отдельный солюшн. Делать сборку, ссылаться на нее из других проектов (чтобы не класть в GAC, можно заюзать DEVPATH).
Re[2]: Межпроектная библиотека C#
От: Qbit86 Кипр
Дата: 22.01.10 12:46
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Общую часть вынести в отдельный солюшн. Делать сборку, ссылаться на нее из других проектов (чтобы не класть в GAC, можно заюзать DEVPATH).


Доступность сборки из вкладки «.NET» окна «Add reference» никак не зависит от нахождения сборки в GAC'е. На это влияет нахождение пути к сборкам в определённой ветке реестра (или симлинков в определённой папке).

Можно также добавить путь к сборке в Project References, эта информация хранится не в файле *.csproj, а в файле *.user (который обычно не хранится в репозитории), так что конфликтов с локальными путями других разработчиков не будет. Из недостатков такого подхода: это нужно делать отдельно для каждого проекта, использующего сборку; усложняется deployment исходников (те мероприятия, которые нужно произвести на «голой» машине после чекаута, чтобы проект собрался).
Глаза у меня добрые, но рубашка — смирительная!
Re: Межпроектная библиотека C#
От: Овощ http://www.google.com
Дата: 22.01.10 12:52
Оценка: +1
Здравствуйте, Ankir, Вы писали:

A>P.S. При программировании C++ и Delphi мы использовали общую для нескольких проектов библиотеку написанных нами классов, которая хранилась отдельно от проектов и дополнялась и изменялась по мере выполнения проектов, изменения в этой библиотеке вносились прямо из разрабатываемых проектов и распространялись на все проекты.


Или такой вариант.
Для общих файлов в отдельном месте создаем отдельный проект типа ClassLibrary. Ко всем остальным (основным) солюшенам добавляем этот проект целиком через контекстное меню солюшена -> Add -> Existing Project....
Re[3]: Межпроектная библиотека C#
От: Mr.Cat  
Дата: 22.01.10 12:55
Оценка:
Здравствуйте, Qbit86, Вы писали:
Q>Доступность сборки из вкладки «.NET» окна «Add reference» никак не зависит от нахождения сборки в GAC'е.
Эт да, просто думается мне, что с DEVPATH проще всего. Не?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.