8

Ręczne synchronizowanie właściwości wielu projektów programu Visual Studio w trybie synchronizacji jest denerwujące. Jak więc można udostępniać właściwości między wieloma projektami?Jak współdzielić właściwości między wieloma projektami Visual Studio? (szczególnie projekty C#)

Edytuj: Odnoszę się do właściwości, takich jak symbole kompilacji warunkowych, traktowanie ostrzeżeń i błędów itp., Tj. Rzeczy, które można skonfigurować w zakładkach Projekt-> Właściwości lub edytując plik XML projektu.

Podobne pytania zadawano wcześniej, patrz: 1, 2 i 3. Jednak w moim rozumieniu odpowiedzi były specyficzne dla C++. Szukam odpowiedzi dla projektów C#. Niemniej jednak, nie wahaj się odpowiedzieć na inne projekty (Visual Basic itp.), Jeśli utrzymasz separację jasno, ponieważ ktoś inny niż ja może być zainteresowany.

This blog post proponuje rozwiązanie problemu, ale wolałbym coś prostszego.

Ponadto, można rozwiązać przynajmniej część problemu w następujący sposób (Należy pamiętać, że chociaż ja testowałem go, nie przetestować go dokładnie):

utworzyć plik AssemblyInfo.cs z atrybutami montażowych zamierzasz się dzielić. Link do tego istniejącego elementu w poszczególnych projektach. Użyj oryginalnej (lokalnej) AssemblyInfo.cs i umieść tam atrybuty związane z konkretnym projektem. Niestety, zastępowanie atrybutów nie działa, a zarządzanie atrybutami za pośrednictwem GUI jest teraz ograniczone.

+2

Jest 2014. Czy to nadal niemożliwe? – David

Odpowiedz

4

Dla tego rodzaju rzeczy wolę mieć oddzielny projekt biblioteki klas z jedną (lub więcej) klasami statycznymi przechowującymi właściwości (statyczne). Następnie dodaj odniesienie do tego projektu z każdego projektu, który wymaga zsynchronizowania tych właściwości, a wszystkie te projekty będą miały te same wartości i będziesz musiał je zmienić tylko w jednym miejscu.

Na przykład załóżmy, że mam tę samą aplikację w formie internetowej i stacjonarnej. Rzeczy takie jak ciągi połączeń i takie będą musiały być takie same dla obu. Więc będę tworzyć trzy projekty:
MyProject.Web (aplikacji WWW)
MyProject.Desktop (Windows Forms aplikacji)
MyProject.Common (Class Library)
Potem dodać nową klasę statyczną w Common nazywać się Właściwości z właściwość statyczna o nazwie ConnectionString, która zwraca ciąg połączenia.
Dodaję następnie odwołanie do Common w Web i na pulpicie, a gdy chcę uzyskać dostęp do ciągu połączenia z dowolnego z nich, używam Common.Properties.ConnectionString.

+1

Dzięki. Jednak moją intencją mówiąc o właściwościach było odwołanie się do konfiguracji kompilacji, a nie do konfiguracji środowiska wykonawczego. Np. Rzeczy, które możesz skonfigurować w Project-> Properties-> Application, Project-> Properties-> Build etc. –

+0

Rozumiem. Obawiam się, że nie mogę zaproponować niczego lepszego niż to, co napisałeś sam. Przepraszam, nie mogłem pomóc. – Yandros

1

Bardzo intensywnie wykorzystujemy pliki .vsprops do udostępniania makr zdefiniowanych między naszymi natywnymi projektami.

Ktoś zadający dokładnie to samo pytanie, wpadł na pomysł dodania "pustego" wizualnego projektu C++ do rozwiązania, aby mógł zaimportować plik vsprops, a właściwości byłyby ogólnie widoczne dla reszty rozwiązania. Jeśli nie brzmi to zbyt brutalnie, mogę się dowiedzieć, jak to działa.

Powiązane problemy