Нужен ли мне bindebugappName.vshost.exe и AppName.vshost.manifest в моем репозитории кода SVN?

#c# #.net #visual-studio-2008 #svn

#c# #.net #visual-studio-2008 #svn

Вопрос:

Я создаю приложение, основанное на примере приложения, написанного на C # в .NET 2 и построенного на VS2008. Это приложение в основном является оболочкой для COM-приложения. Однако я компилирую его в .NET 3.5.

Образец приложения поставляется со следующими файлами в его bindebug :

  • appName.vshost.exe
  • appName.vshost.exe.manifest

Я заметил, что могу удалять файлы и перестраивать VS vshost.exe и файл vshost.manifest отображается с датой изменения, такой же, как у удаленного файла, как будто VS скопировал его откуда-то.

Мой вопрос в том, должен ли я поместить эти файлы в мой репозиторий кода SVN?

Ответ №1:

Эти два файла, которые вы перечисляете, реализуют «процесс размещения» Visual Studio. Это размещенная версия среды CLR, разработанная для улучшения процесса отладки. Он решает некоторые проблемы безопасности, наиболее заметным побочным эффектом является то, что он перенаправляет выходные данные, записанные с помощью консоли.WriteLine() в приложении с графическим интерфейсом в окне вывода.

Эти файлы не являются частью вашего проекта и не удаляются при использовании Build Clean. Фактически, вы не можете удалить EXE-файл, он всегда выполняется, пока вы открываете проект в Visual Studio. Вы можете отключить функцию процесса размещения с помощью Project Properties, Debug, прокрутите вниз, отметьте галочкой «Включить процесс размещения Visual Studio». Для этого нет веских причин.

Нет необходимости проверять их, Visual Studio повторно генерирует их при возврате проекта и загрузке его в VS. В общем, вам никогда не нужно ничего проверять из подкаталога bin, его содержимое всегда создается заново при сборке вашего проекта.

Комментарии:

1. Это самый подробный ответ на подобные вопросы. Понимание того, как работает VS, поможет вам ознакомиться с деталями и лучше решить, как к этому адаптироваться.

Ответ №2:

Все, что находится в debug (или release ) папке, сгенерировано. Все, что сгенерировано, не должно быть возвращено.

Если сомневаетесь, просто выполните новую проверку в какую-нибудь другую папку (или даже на компьютер) и попробуйте выполнить сборку на основе этого. Если чего-то не хватает, это будет найдено.

Комментарии:

1. неверно, и такое ощущение, что вы не прочитали мой вопрос всерьез.

2. Я серьезно прочитал ваш вопрос и понял, что вы думаете, что файл откуда-то скопирован. Я все равно дал этот ответ. Вам это не обязательно должно нравиться, но я написал то, что, по моему мнению, является ответом на ваш вопрос. Не стесняйтесь отклонять мой ответ, если он вам не нравится. (Но, пожалуйста, объясните, что голосование против лучше, чем с вашим «не соответствует действительности», о котором я не знаю, к какому из двух моих утверждений это относится.)

3. Извините за это. Не все в папке debug сгенерировано, возможно, там должны быть какие-то файлы, такие как dll, и, возможно, vshost.exe парень по какой-то причине. И все же я понимаю, что, возможно, приложение не прилагалось к нему. Тем не менее, это не удаляется при очистке решения.

4. @Bruce: Когда я запускаю новый проект, когда я нажимаю «Построить» в первый раз, эти папки создаются. Итак, то, что там есть, было помещено туда VS, и это было сделано путем запуска сборки. Почему он не сможет сделать это снова? В любом случае, я добавлю кое-что к своему ответу.

Ответ №3:

Я не думаю, что вам следует. Они предназначены только для использования VS.

Ответ №4:

Вот файлы, которые я игнорирую при создании проектов на C #. Вы действительно хотите хранить только исходный код в репозитории, а не выходные данные. Аналогичным образом вы, вероятно, не хотите хранить информацию о пользователе, которая поставляется вместе с решениями VS.

  • *.csproj.user
  • *.suo
  • bin (папка)
  • obj (папка)