2015-03-09 12 views
5

Pracuję nad projektem, w którym mamy narzędzie do kompilacji, które automatycznie generuje pliki źródłowe podczas procesu kompilacji i kompiluje je. Jednak ta konfiguracja uniemożliwia nam uzyskanie intellisense lub dowolne autouzupełnianie podczas pracy z tymi wygenerowanymi klasami. Zastanawiam się, czy istnieje sposób, abyśmy mogli włączyć te pliki jako referencje intellisense bez ich kompilacji.Dodaj plik do projektu dla Intellisense, ale nie kompiluj

Pomysł polegał na tym, że możemy skopiować wygenerowane źródło do folderu docelowego w ramach zadania budowania, które następnie byłoby możliwe do wykorzystania w autouzupełnianiu, bez naruszania naszego systemu. Wiem, że mogę włączyć całą zawartość tego folderu automatycznie, ale ustawienie opcji Zbuduj działanie na Brak nie zapewni żadnej funkcji autouzupełniania, jaka by się pojawiła.

Jesteśmy przy użyciu Visual Studio 2013.

Odpowiedz

2

Tak więc z pomocą moich współpracowników znaleźliśmy bardzo skuteczne rozwiązanie tego problemu.

Zasadniczo MSBuild używa <CompileDependsOn> do ustalenia, skąd pobrać intellisense. <CompileDependsOn> jest dostarczany z rozdzielaną średnikami listą celów, które dodają pliki do <Compile>.

Dla naszej sytuacji, dla projektów, które potrzebowały intellisense, dodaliśmy następujące linie do projektu.

<PropertyGroup> 
    <CompileDependsOn> 
    customTarget;$(CompileDependsOn) 
    </CompileDependsOn> 
</PropertyGroup> 

Gdzie customTarget jest celem, który dodaje wygenerowane pliki do <Compile>

0

Zgaduję można zrobić nowy projekt, w Configuration Manager wybrać ten projekt, aby nie budować.

Kwestia polega na tym, że należy odwołać się do projektu. Można to rozwiązać, zastępując wynik czymś już wykonanym, np. Plikiem z zestawem "Kopiuj do folderu wyjściowego".

+0

Dodanie nowego projektu i przedstawieniu nie byłoby problemem, głównym problemem jest co czyni go tak, że nie trzeba zmieniać tego projektu, gdy wygenerowane zmiany wyjścia . Musimy więc skonfigurować go raz, to jest wystarczające. –

0

Dodaj poniżej linii w pliku csproj projektu.

<ItemGroup> 
    <Content Include="<file path respective of your project>" /> 
<ItemGroup> 

Przykład:

<ItemGroup> 
     <Content Include="Common\Constants.cs" /> 
<ItemGroup> 
Powiązane problemy