<Subtype> Projektant </Subtype> Dodane, a następnie usunięte przez Visual Studio podczas ładowania / zwalniania

177

Czy ktoś to widział wcześniej? Mam duży projekt Visual Studio, który jest dodawany [Subtype]Designer[/Subtype]do mojego, .vcproja następnie usuwany przy następnym otwarciu i zamknięciu projektu. Jest tylko jedna klasa zdefiniowana w StoredImageControl.cs. Każdy wie, jak to wyłączyć, ponieważ naprawdę psuje moją kontrolę wersji.

To było wcześniej:

<EmbeddedResource Include="StoredImageControl.resx">
  <DependentUpon>StoredImageControl.cs</DependentUpon>
</EmbeddedResource>

To jest po

<EmbeddedResource Include="StoredImageControl.resx">
  <DependentUpon>StoredImageControl.cs</DependentUpon>
  <SubType>Designer</SubType>
</EmbeddedResource>
Jeff Lundstrom
źródło
Widzę to samo z <SubType> UserControl </SubType> w VS 2005. Bardzo dziwne.
David Gardiner,
1
Ten problem też widzę w VS 2008
schoetbi
1
Wpadłem na to w VS 2010. Również zagubiony.
Jon Davis,
To samo dzieje się ze mną w VS 2008 przez cały czas. Próbuję zmniejszyć jego wpływ na kontrolę źródła, powracając do niego zaraz po wymeldowaniu, tuż przed rozpoczęciem jakiejkolwiek rzeczywistej pracy ... ale to bzdura i często o tym zapominam. Czy próbowałeś to zgłosić za pośrednictwem connect.microsoft.com?
Alan
2
Dlaczego masz plik kodu źródłowego C # w projekcie C / C ++?
Hans Passant

Odpowiedzi:

95

Może to być związane z plikami, które otworzyłeś w zapisanym stanie rozwiązania. Napotkałem ten problem w VS2010 i stwierdziłem, że jeśli zamknę rozwiązanie, gdy plik .xml był otwarty w edytorze, to po ponownym otwarciu rozwiązania projekt zawierający ten plik .xml zostanie <SubType>Designer</SubType>dodany. Jeśli jednak zamknę rozwiązanie bez otwarcia tego pliku, nie podejmie próby dodania tego wiersza przy następnym ponownym otwarciu.

Nathan Reed
źródło
8
Wydaje się, że to był problem dla mnie (również VS 2010). Irytujące jest jednak to, że program Visual Studio wprowadzałby własne zmiany w plikach tylko na podstawie tego, które z nich są otwarte, zwłaszcza, że ​​pojawiają się w systemie kontroli źródła. Pokocham "funkcje" Microsoftu ...
Ben Sutton,
10
Jest to nadal otwarty problem z MS: connect.microsoft.com/VisualStudio/feedback/details/757970/ ...
Pat
4
To VS2015, a mimo to nadal występuje.
Johnny_D,
2
VS2017, nadal problem. Uniemożliwia korzystanie z kontroli źródła, ponieważ VS ciągle <Subtype>Designer</SubType>sporadycznie dodaje te głupie tagi.
Triynko,
1
Zabili connect, ale developercommunity.visualstudio.com/content/problem/204355/ ... twierdzi, że problem został rozwiązany przynajmniej dla VS2019 Preview 2
Josh Sutterfield
38

Był to problem w co najmniej 3 wersjach programu Visual Studio, 2008, 2010 i 2012. Jest to rejestrowane jako błąd w Microsoft Connect, ale odpowiedź MS brzmi: „Zarejestrowaliśmy Twoją prośbę, ale nie planujemy tego naprawić czas." Zaproponuj, abyś zagłosował na raport o błędzie, ponieważ jest on nadal aktywny i może uzyskać lepszą odpowiedź od MS przy wystarczającej liczbie głosów pozytywnych.

JohnC
źródło
25
2013 i teraz 2015 mają ten sam problem.
James Skemp
4
Tak, widziałem to po raz pierwszy w VS2015 właśnie teraz.
JohnC
2
Nie, JohnC, to nie jest błąd, to przestępstwo.
Patrick Fromberg,
4
Microsoft Connect został wycofany, otworzyłem nowy numer na developercommunity.visualstudio.com. To jest „Rozważane”, więc zagłosuj!
enzi
„Rozwiązaliśmy ten problem i jest on dostępny w programie Visual Studio 2019 w wersji zapoznawczej 2 Dziękujemy za opinię!” - zgodnie z rozwiązaniem w kwestii społeczności deweloperów.
Josh Sutterfield
8

Napotykam ten sam problem w pliku .csproj mojej aplikacji internetowej ASP.NET:

<ItemGroup>
  <Content Include="site.master" />
  <Content Include="Web.config">
    <SubType>Designer</SubType>
  </Content>
</ItemGroup>

Przeciw:

<ItemGroup>
  <Content Include="site.master" />
  <Content Include="Web.config" />
</ItemGroup>

Moja irytacja związana z tym problemem jest również spowodowana zmianami w kontroli wersji. Wydaje się, że problem występuje w VS 2005/2008/2010. Znalazłem następujące pytanie na forach Microsoft, ale odpowiedź nie jest jasna.

Mam nadzieję, że ustawienie VS to powoduje, w takim przypadku chciałbym, abyś wiedział, kiedy się dowiem, jakie to ustawienie.

JohnB
źródło
1
Problem jest naglący również w porównaniu z rokiem 2013.
Johan,
To tylko kolejny przykład modyfikowania plików w programie Visual Studio, gdy zachodzi taka potrzeba. Pewnego dnia Microsoft w końcu zda sobie sprawę, że to użytkownik powinien
rządzić
7

Czy próbujesz umieścić SubType jako atrybut obiektu EmbeddedResource?

<EmbeddedResource Include="StoredImageControl.resx" SubType="Designer"> 
  <DependentUpon>StoredImageControl.cs</DependentUpon> 
</EmbeddedResource> 

Widziałem pytanie podobne do twojego w poniższym linku i rozwiązał swój problem z tym:

http://community.sharpdevelop.net/forums/t/9977.aspx

Mauro Gagna
źródło
1
Użycie SubTypesztuczki atrybutów nie działa na <Content>elementach: VS2010 zgłasza, że ​​atrybut jest nierozpoznany.
Pierre Arnaud
3

Zauważyłem, że <SubType>Designer</SubType>zmienia to zachowanie pliku Web.config.

Używamy WebDeploy do publikowania plików usług internetowych.

Jeśli SubType jest ustawiony dla Web.config - publikuje ten plik poprawnie w głównym katalogu, do którego trafiają wszystkie pliki zawartości, oraz .svc.

Jeśli SubType nie jest ustawiony - robi to powyżej, ale również kopiuje plik Web.config do podkatalogu bin \ - co jest bardzo dziwne! W dzienniku MsBuild dzieje się tak podczas celu CollectFilesFrom_SourceItemsToCopyToOutputDirectory.

Ivan
źródło
0

U mnie również powoduje to problemy z kontrolą wersji przy dodawaniu nowych plików do projektu.

Jako obejście zrobiłem: cofnąłem oczekujące zmiany w pliku projektu, a następnie ręcznie dodałem nowe pliki prawym przyciskiem myszy -> dodaj istniejące pliki do projektu.

Robiąc to, tag < SubType >Designer< /SubType >nie przychodzi.

Mam nadzieję, że to komuś pomoże. Stąd publikowanie tego.

NidhinSPradeep
źródło