Почему создается подпапка "net6.0-windows"?

0

Вопрос

Я использую visual studio 2022 и создал приложение winforms .net 6. Я указал путь вывода для своей сборки выпуска, в котором я хочу создать файл .exe, но visual studio создает подпапку под названием "net6.0-windows" и помещает туда исполняемый файл. Как мне остановить это и заставить его поместить exe-файл туда, где я указал?

Некоторая предыстория: я обновляю Winforms .Net Framework 4.8 до .Net 6. В .net framework он помещает исполняемый файл в указанную выходную папку (без вложенных папок). Я хочу придерживаться того же поведения, потому что другие файлы и утилиты также должны быть там или искать в этой папке.

Путь вывода, указанный в visual studio

[Output path specified in visual studio]

Фактический выходной путь

[Actual output path]

.net .net-5 .net-6.0 visual-studio
2021-11-24 05:08:25
1

Лучший ответ

1

Я предоставлю следующую информацию для справки и ради ответа на этот вопрос.

Вы можете предотвратить добавление targetFramework в выходную папку, добавив в файл проекта следующее свойство.

<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>

Кроме того, вы можете запретить идентификатор времени выполнения (например win-x64), если таковые имеются, которые будут добавлены, установив для этого свойства значение false:

<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>

Стоит ли вам это делать?

А может, и нет. Эти каталоги существуют по определенной причине: чтобы разрешить параллельную работу с несколькими целевыми фреймами (версиями) и/или несколькими идентификаторами времени выполнения (в противном случае выходные данные будут смешиваться нечестивым образом).

2021-11-24 07:55:53

Есть ли необходимость в этом, если вы создаете приложение WinForms/WPF? Я понимаю необходимость в этом при создании библиотек, которые распространяются и используются многими различными типами среды выполнения, но как быть при создании настольного приложения?
asaf92

Спасибо, Кристиан, первая строка, которую ты перечислил, сделала свое дело. Для тех, кому интересно, почему я этого хотел, это программное обеспечение предназначено для производственного оборудования и будет когда-либо установлено только на нескольких компьютерах, поэтому мы не используем публикацию, мы просто перемещаем папку сборки выпуска в специальное расположение на оборудовании, и ей необходимо поддерживать правильную функциональность с другим программным обеспечением. Это также доставляет дополнительное удовольствие, связанное с правилами и документацией FDA.
Possibility

Обратите внимание, что, как уже говорили другие, папка "Выпуск" (или "Отладка"), как правило, не включает все зависимости, необходимые для запуска приложения. Полная история, ну, сложная (для начала найдите "автономное приложение .net core"). В общем, только после выполнения шага "опубликовать" вы можете быть уверены, что у вас есть все зависимости, необходимые приложению для запуска в другом окне.
Christian.K

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................