Создание приложения .NET Core через командную строку, чтобы оно работало на компьютере без установленного .NET Core.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Создание приложения .NET Core через командную строку, чтобы оно работало на компьютере без установленного .NET Core.

Сообщение Anonymous »

Моя конечная цель — создать кроссплатформенное (не веб-) консольное приложение, поэтому сейчас я изучаю .NET Core.
В моих предыдущих проектах .NET Я выполнил всю разработку в Visual Studio, но я также создал пакетный файл/файл MSBuild, чтобы можно было собрать весь проект (включая настройки, пакеты NuGet, zip-файлы с двоичными файлами и т. д.) одним щелчком мыши. . Вот пример из предыдущего проекта.
В конце концов, я хочу сделать что-то подобное с моим тестовым проектом .NET Core.
Но сейчас у меня ничего не получается первый шаг: я не могу собрать его вне Visual Studio, чтобы результат работал на другом компьютере с Windows без установленного .NET Core.
(на первом этапе я игнорирую кроссплатформенность часть - я буду рад заставить это работать в Windows)

Что у меня есть
Мне удалось заставить это работать внутри Visual Studio Community Edition 2015 следующим образом:
  • создайте новый проект в Visual Studio: «Новый проект» ⇒ «Интернет» ⇒ «Консоль». Приложение (Пакет)"
  • создайте новый профиль публикации в Visual Studio («Создать» ⇒ «Опубликовать» в меню).
    Это создаст сценарий PowerShell (и XML-файл с настройками)
Вот мой тестовый проект на GitHub.
Когда я выполняю «Сборка» ⇒ «Публикация». " в меню снова, Visual Studio, видимо, выполняет ранее созданный скрипт PowerShell снова.
Результат весит чуть больше 90 МБ, состоит из 825 файлов в 598 папках и выглядит следующим образом:
Изображение

Когда я копирую его на другой компьютер (установлена ​​Windows 7/.NET 4/.NET Core не установлен), это работает.

То, что я пытался получить тот же результат за пределами Visual Studio
1. dotnetPublish
Этот ответ и этот ответ звучат так, будто я могу использовать dnuPublish для достижения того же результата через командную строку.
Я понимаю, что некоторые части .NET В настоящее время ядро ​​по-прежнему перемещает цели, поэтому, очевидно, вместо этого dnu теперь является dotnet.
Поэтому я попытался выполнить публикацию в dotnet (и создал пакетный файл) для него:

Код: Выделить всё

dotnet publish "%~dp0\src\CoreTestVisualStudio" -c Release -r win7-x64 -o "%~dp0\release\cli"
Результат состоит из файла .exe и кучи DLL, всего 25 файлов и 1,5 МБ, все в одной папке:
Изображение

Очевидно, среда выполнения .NET Core здесь отсутствует, и как и ожидалось, это приложение аварийно завершает работу, когда я пытаюсь запустить его на компьютере без установленного .NET Core (тот же, что упоминался выше).
2. Сценарий PowerShell из профиля публикации
Я пытался выполнить сценарий PowerShell (который был создан при создании профиля публикации) вне Visual Studio, но это не удалось, поскольку сценарий ожидает некоторые параметры и Я не знаю, что передать:

Код: Выделить всё

param($publishProperties, $packOutput, $nugetUrl)
В скрипте также есть такая строка:

Код: Выделить всё

# to learn more about this file visit http://go.microsoft.com/fwlink/?LinkId=524327
...но ссылка просто указывает на целевую страницу блога веб-разработки и инструментов .NET.

< h2>TL;DR
Что я делаю не так?
Я знаю, что первый выпуск .NET Core в основном ориентирован на ASP.NET, но, насколько я понял, приложения ASP.NET Core — это тоже просто консольные приложения, поэтому я подумал, что базовое консольное приложение теперь будет работать.
С другой стороны, большая часть документации по началу работы с консольными приложениями все еще отсутствует, так что, возможно, еще слишком рано и публикация в dotnet для консольных приложений еще не завершена?
Я подозреваю, что не делаю ничего плохого и что это проблема в инструментах командной строки .NET Core, поэтому я разместил ее в системе отслеживания проблем инструментов командной строки.

Подробнее здесь: https://stackoverflow.com/questions/345 ... s-on-a-mac
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Каков использование случая, установленного в файле заголовка , установленного с Wabt?
    Anonymous » » в форуме Javascript
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Запуск скрипта Python без установленного на компьютере Python
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Запуск скрипта Python без установленного на компьютере Python
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Получить командную строку другого процесса в .NET Core
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как открыть глубокую ссылку приложения iOS на реальном устройстве iOS через командную строку?
    Anonymous » » в форуме IOS
    0 Ответы
    56 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»