<Subtype> Designer </ Subtype> добавляется, а затем удаляется Visual Studio при загрузке / выгрузке

177

Кто-нибудь видел это раньше? У меня есть большой проект Visual Studio, который постоянно добавляется [Subtype]Designer[/Subtype]к моему, а .vcprojзатем удаляется при следующем открытии и закрытии проекта. Существует только один класс, определенный в StoredImageControl.cs. Кто-нибудь знает, как отключить это, поскольку это действительно испортило мой контроль версий.

Это раньше:

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

Это после

<EmbeddedResource Include="StoredImageControl.resx">
  <DependentUpon>StoredImageControl.cs</DependentUpon>
  <SubType>Designer</SubType>
</EmbeddedResource>
Джефф Лундстрем
источник
Видеть то же самое с <SubType> UserControl </ SubType> в VS 2005. Очень странно.
Дэвид Гардинер
1
Я также вижу эту проблему в VS 2008
schoetbi
1
Наткнулся на это в VS 2010. Также растерялся.
Джон Дэвис
То же самое происходит со мной в VS 2008 все время. Я пытаюсь уменьшить влияние контроля над исходным кодом, возвращаясь вскоре после проверки, прямо перед тем, как начать выполнять какую-либо реальную работу ... но это клочок, и я часто забываю это делать. Вы пытались сообщить об этом через connect.microsoft.com?
Алан
2
Почему у вас есть файл исходного кода C # в проекте C / C ++?
Ганс Пассант

Ответы:

95

Это может быть связано с тем, какие файлы открыты в сохраненном состоянии решения. Я столкнулся с этой проблемой в VS2010 и обнаружил, что если я закрою решение, когда в редакторе был открыт файл .xml, то при последующем повторном открытии решения проект, содержащий этот файл .xml, <SubType>Designer</SubType>добавит эту строку. Однако если я закрою решение без открытия этого файла, оно не будет пытаться добавить эту строку при следующем повторном открытии.

Натан Рид
источник
8
Это, кажется, проблема для меня (VS 2010 также). Раздражает то, что Visual Studio вносит свои изменения в ваши файлы, основываясь только на том, какие из них открыты, тем более что они отображаются в вашей системе контроля версий. Должен любить "особенности" Microsoft ...
Бен Саттон
10
Эта проблема все еще остается открытой для MS: connect.microsoft.com/VisualStudio/feedback/details/757970/…
Пэт
4
Это VS2015, и все же это все еще происходит.
Johnny_D
2
VS2017, все еще проблема. Делает невозможным использование контроля версий, потому что VS постоянно добавляет эти глупые <Subtype>Designer</SubType>теги.
Трийнко
1
Они убили соединение, но developercommunity.visualstudio.com/content/problem/204355/… говорит, что это решено по крайней мере для VS2019 Preview 2
Джош Саттерфилд
38

Это было проблемой, по крайней мере, в 3 выпусках Visual Studio, 2008, 2010 и теперь 2012. Это регистрируется как ошибка в Microsoft Connect, но ответ MS: «Мы записали ваш запрос, но не планируем исправлять это на этом время." Предложите проголосовать за отчет об ошибке, так как он все еще активен и может получить лучший ответ от MS с достаточным количеством голосов.

JohnC
источник
25
2013 и сейчас 2015 имеют одинаковую проблему.
Джеймс Скемп
4
Да, видел это впервые в VS2015 только сейчас.
JohnC
2
Нет JohnC, это не ошибка, это уголовное преступление.
Патрик Фромберг
4
Microsoft Connect устарела, я открыл новый выпуск на developercommunity.visualstudio.com. Это "На рассмотрении", так что проголосуйте!
Enzi
«Мы исправили эту проблему, и она доступна в Visual Studio 2019 Preview 2. Спасибо за ваш отзыв!» - в соответствии с решением по вопросу об общине.
Джош Саттерфилд
8

Я столкнулся с той же проблемой в файле .csproj моего веб-приложения ASP.NET:

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

Против:

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

Мое раздражение по поводу этой проблемы также связано с изменениями контроля версий. Проблема, кажется, присутствует в VS 2005/2008/2010. На форуме Microsoft нашли следующий вопрос, но ответ не ясен.

Я надеюсь, что настройка VS вызывает это, и в этом случае, я хотел бы, чтобы вы знали, когда я узнаю, что это за настройка.

Johnb
источник
1
Выпуск также присутствует в 2013 году.
Йохан
Просто еще один пример изменения файлов в Visual Studio. Однажды Microsoft, наконец , понять , что пользователь должен быть ответственным и случайным образом изменяя файлы без ОК пользователей никогда не должно произойти
goneskiing
7

Вы пытаетесь поместить SubType как атрибут объекта EmbeddedResource?

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

Я увидел вопрос, подобный вашему, в следующей ссылке, и он решил свою проблему с этим:

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

Мауро Ганья
источник
1
Использование SubTypeтрюка атрибута не работает с <Content>элементами: VS2010 жалуется, что атрибут не распознан.
Пьер Арно
3

Я обнаружил, что это <SubType>Designer</SubType>меняет поведение Web.config.

Мы используем WebDeploy для публикации файлов веб-сервисов.

Если SubType установлен для Web.config - он правильно публикует этот файл в главном каталоге, куда идут все файлы содержимого и .svc.

Если SubType не установлен - он делает это выше, но также копирует Web.config в bin \ subdirectory - что очень странно! В журнале MsBuild это происходит во время цели CollectFilesFrom_SourceItemsToCopyToOutputDirectory.

Иван
источник
0

Для меня это также вызывает проблемы с контролем версий при добавлении новых файлов в проект.

В качестве обходного пути я сделал: отменить ожидающие изменения в файле проекта, а затем вручную добавить новые файлы, щелкнув правой кнопкой мыши -> добавить существующие файлы в проект.

При этом тег < SubType >Designer< /SubType >не приходит.

Надеюсь, это кому-нибудь поможет. Отсюда пост это.

NidhinSPradeep
источник