<Subtype> Designer </Subtype> Adicionado e removido pelo Visual Studio ao carregar / descarregar


177

Alguém viu isso antes? Eu tenho um grande projeto do Visual Studio que continua adicionando [Subtype]Designer[/Subtype]ao meu .vcproje removendo-o na próxima abertura e fechamento do projeto. Existe apenas uma classe definida em StoredImageControl.cs. Alguém sabe como desligar isso, pois está realmente atrapalhando meu controle de revisão.

Isso é antes:

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

Isso é depois

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

Vendo a mesma coisa com <SubType> UserControl </SubType> no VS 2005. Muito estranho.
David Gardiner

1
Eu também vejo este problema no VS 2008
schoetbi

1
Encontrei isso no VS 2010. Também confuso.
Jon Davis

A mesma coisa acontece comigo no VS 2008 o tempo todo. Eu tento diminuir o impacto do controle de origem revertendo logo após os check-out, logo antes de começar a fazer qualquer trabalho real ... mas é um problema e muitas vezes esqueço de fazê-lo. Você tentou denunciá-lo via connect.microsoft.com?
Alan

2
Por que você tem um arquivo de código-fonte C # em um projeto C / C ++?
Hans Passant

Respostas:


95

Isso pode estar relacionado a quais arquivos você abriu no estado de solução salva. Encontrei esse problema no VS2010 e descobri que, se eu fechasse a solução enquanto um arquivo .xml estivesse aberto no editor, na reabertura subsequente da solução, o projeto que continha esse arquivo .xml obteria essa <SubType>Designer</SubType>linha adicionada. Se eu fechar a solução sem esse arquivo aberto, ele não tentará adicionar essa linha na seguinte reabertura.


8
Esse parece ter sido o problema para mim (VS 2010 também). É irritante, porém, que o Visual Studio faça suas próprias alterações em seus arquivos apenas com base em quais estão abertos, especialmente porque eles aparecem no seu sistema de controle de origem. Tenho que amar os "recursos" da Microsoft ...
Ben Sutton

10
Esse ainda é um problema em aberto no MS: connect.microsoft.com/VisualStudio/feedback/details/757970/…
Pat

4
É o VS2015, e ainda assim isso ocorre.
117717 Johnny_D

2
VS2017, ainda é um problema. Torna impossível o uso do controle de origem, porque o VS constantemente adiciona essas <Subtype>Designer</SubType>tags estúpidas esporadicamente.
Triynko 21/02

1
Eles mataram connect mas developercommunity.visualstudio.com/content/problem/204355/... diz que está resolvido, pelo menos para VS2019 Preview 2
Josh Sutterfield

38

Este foi um problema em pelo menos três edições do Visual Studio, 2008, 2010 e agora 2012. Ele está registrado como um bug no Microsoft Connect, mas a resposta da Microsoft é "Registramos sua solicitação, mas não estamos planejando consertar isso neste momento". Tempo." Sugira que você vote no relatório de bug, pois ele ainda está ativo e pode obter uma resposta melhor da MS com votos suficientes.


25
2013 e agora 2015 têm o mesmo problema.
James Skemp

4
Sim, vi pela primeira vez no VS2015 agora.
JohnC

2
No JohnC, não é um bug, é um crime.
Patrick Fromberg

4
O Microsoft Connect foi descontinuado, abri um novo problema no developercommunity.visualstudio.com. É "Sob consideração", então vote!
enzi 27/02

"Corrigimos esse problema e ele está disponível no Visual Studio 2019 Preview 2 Obrigado por seus comentários!" - de acordo com uma solução sobre o problema da comunidade dev.
Josh Sutterfield 24/05/19

8

Estou com o mesmo problema no arquivo .csproj do meu aplicativo Web ASP.NET:

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

Versus:

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

Meu aborrecimento com esse problema também se deve a alterações no controle de revisão. O problema parece estar presente no VS 2005/2008/2010. Encontrou a seguinte pergunta nos fóruns da Microsoft, mas a resposta não é clara.

Espero que uma configuração do VS cause, nesse caso, gostarei que você saiba quando descobrir qual é essa configuração.


1
A questão também é urgente em 2013.
Johan

Apenas mais um exemplo do Visual Studio que modifica arquivos quando parece. Um dia, a Microsoft vai finalmente perceber que o usuário deve ser responsável e alterando aleatoriamente arquivos sem a usuários OK NUNCA deve acontecer
goneskiing

7

Você tenta colocar o SubType como um atributo do objeto EmbeddedResource?

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

Vi uma pergunta como a sua no link a seguir e ele resolveu seu problema com isso:

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


1
O uso do SubTypetruque de atributo não funciona em <Content>elementos: o VS2010 reclama que o atributo não é reconhecido.
Pierre Arnaud

3

Eu descobri que <SubType>Designer</SubType>altera o comportamento do Web.config.

Usamos o WebDeploy para publicar arquivos de serviço da web.

Se SubType estiver definido para Web.config - ele publicará esse arquivo corretamente no diretório principal para onde todos os arquivos de conteúdo vão e .svc.

Se o SubType não estiver definido - ele faz acima, mas também copia o Web.config em bin \ subdiretório - o que é muito estranho! No log MsBuild, isso acontece durante o destino CollectFilesFrom_SourceItemsToCopyToOutputDirectory.


0

Para mim, isso também causa problemas no controle de versão quando são adicionados novos arquivos ao projeto.

Como alternativa, desfiz as alterações pendentes no arquivo do projeto e adicionei manualmente novos arquivos clicando com o botão direito do mouse -> adicionar arquivos existentes ao projeto.

Enquanto isso, a tag < SubType >Designer< /SubType >não aparece.

Espero que isso ajude alguém. Portanto, postando isso.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.