Вопрос

Чтобы улучшить процесс развертывания / сборки моего приложения ASP.NET я хотел бы создать .bat это

  • создает текущее решение в режиме выпуска
  • xcopy файлы на удаленный сервер

Создать сборку релиза с помощью командной строки несложно.

Но как я могу скопировать файлы на удаленный сервер?

Я думаю, мне нужно сопоставить удаленное место назначения с сетевым диском (?).Однако мне не удалось подключиться к удаленному серверу, хотя я включил общий доступ к файлам для папки на сервере.Может быть, брандмауэр блокирует запрос?Какой порт я должен открыть?Или есть другое решение?

Редактировать

Спасибо за все ответы на данный момент, но мне, вероятно, понадобится пошаговое руководство о том, как настроить общий доступ к папкам на сервере.Я предоставил общий доступ к папке, я открыл порт 445, чтобы я мог подключиться к серверу, но все равно я не могу подключиться со своего локального компьютера к серверу, чтобы сопоставить сетевой путь с системным диском.

Это было полезно?

Решение

Поскольку вы развертываете ASP.Сетевой сайт, я предполагаю, что вы находитесь в среде Windows (разве это не разумно?:)).
ИТАК !Забудьте об этом .бейте и идите за POWERSHELL !

В любом случае, это не суть вашего вопроса...Чтобы скопировать в удаленную папку, у вас должны быть права на это на Удаленный компьютер.

Проверьте, есть ли у вас одна и та же учетная запись на вашем локальном компьютере и на удаленном.Например, если вы вошли в систему на своем локальном компьютере в домене "Work" под логином "Pipo", вы должны предоставить права этой учетной записи на запись в вашу специальную папку на удаленном компьютере.

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

Вот пошаговое руководство:

http://support.microsoft.com/kb/301281

Другие советы

Возможно, стоит переместить файлы с помощью XCOPY по пути UNC

\\машина\папка

Для этого потребуется, чтобы у вас был доступ к папке с исходного сервера.Убедитесь, что к папке предоставлен общий доступ и что были предоставлены соответствующие разрешения на чтение / запись.

Если сервер находится в вашей локальной сети, я бы предложил использовать robocopy вместо того , чтобы xcopy - в нем есть еще много полезных опций и возможность повторить попытку при ошибках.Он просто отлично обрабатывает UNC-имена (как я полагаю xcopy тоже делает).Я думаю, что это доступно на более новых клиентах Windows - если этого нет на вашем компьютере, Погуглите для этого - это доступно в различных загрузках resource kit (я не знаю подробностей о том, начала ли / когда Microsoft включать это в дистрибутив ОС, потому что у меня это было в моем utility kit уже очень, очень давно).

Если сервер не является локальным, вы можете создать скрипт FTP-клиента командной строки для выполнения передачи.Если вам нужна дополнительная гибкость или безопасность, существует множество других вариантов передачи файлов, в том числе WinSCP ( ВинСКП ).

Конечно, в любом случае (локальный или удаленный сервер) разрешения сервера и ваша аутентификация должны быть настроены должным образом, чтобы это могло сработать.

Вы можете использовать любой UNC-путь: \\machine\sharedFolder.Если вы не хотите настраивать общую папку, вы можете ссылаться на любой из дисков на компьютере, используя знак $: \\machine\c$\program files\etc.Если ваши компьютеры находятся в Active Directory или если у вас есть локальный пользователь на целевом компьютере с тем же именем пользователя И паролем, Windows без проблем выполнит проверку подлинности.

Вы пробовали высвободить его?

http://www.eworldui.net/unleashit/

Он может перемещать файлы по сетям, запускать файлы предварительной сборки bat, маскировать файлы и т.д...

Я использовал его раньше в проектах .net 1.1.

Я думаю, ты хочешь:

XCOPY c:\myproject\build\*.* \\server\\build\ /S /E

Все вышеперечисленное кажется отличным ответом - вы могли бы рассмотреть возможность использования скрипта msbuild и задач сообщества msbuild для выполнения всего этого - они могут заархивировать вашу сборку и отправить ее по ftp на удаленный сервер.

Я только что настроил это для одного из наших сайтов, мне потребовалось пару часов, чтобы разобраться с этим, но он создает сайт в версии, обновляет конфигурационные файлы для производства, удаляет ненужные файлы, а затем выполняет загрузку.

после поиска стольких ответов вот решение

"xcopy D:\\folder\\container \\\\servername\\folder\\container\\ \/E \/H \/Y"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top