为了改进我的ASP.NET应用程序的部署/构建过程,我想创建一个.bat
xcopy
文件到远程服务器通过命令行创建发布版很容易。
但是如何将文件xcopy到远程服务器?
我想我必须将远程目标映射到网络驱动器(?)。但是我无法连接到远程服务器,尽管我已经为服务器上的文件夹启用了文件共享。也许防火墙阻止了请求?我应该打开哪个端口?还是有另一种解决方案吗?
修改
感谢目前为止的所有答案,但我可能需要一步一步指导如何在服务器上设置文件夹共享。我共享了文件夹,我打开了端口445,这样我就可以连接到服务器了但是,我无法从本地机器连接到服务器,以便将网络路径映射到系统驱动器。
答案 0 :(得分:3)
使用XCOPY通过UNC路径移动文件可能是值得的
\\机\文件夹
这将要求您从原始服务器访问文件夹。检查文件夹是否已共享,以及是否已授予相关的读/写权限。
答案 1 :(得分:3)
由于您正在部署ASP.Net站点,我假设您处于Windows环境中(不聪明?:))。
所以!忘记.bat然后去 POWERSHELL !
无论如何,这不是你问题的重点...... 要复制到远程文件夹,您应该有权在远程计算机上执行此操作。
检查您的本地计算机和远程计算机上是否有相同的帐户。 例如,如果您使用登录名“Pipo”登录“Work”域中的本地计算机,则必须授予此帐户权限以写入远程计算机上的特殊文件夹。
您可以通过右键单击文件夹,安全选项,然后选择正确的标识来实现此目的。
以下是分步指南:
答案 2 :(得分:1)
如果服务器位于您的本地网络上,我建议使用robocopy
而不是xcopy
- 它有更多有用的选项和功能来重试错误。它处理UNC名称就好了(我相信xcopy
也是如此)。我认为它可以在较新的Windows客户端上使用 - 如果它不在你的机器谷歌上 - 它可用于各种资源包下载(我不知道微软是否/何时开始将其包含在操作系统发行版中的细节,因为我已经已经在我的实用工具包中使用了很长时间了。)
如果服务器不是本地服务器,则可以编写命令行FTP客户端脚本以执行传输。如果您需要额外的灵活性或安全性,还有许多其他文件传输选项,包括WinSCP。
当然,在任何一种情况下(本地或远程服务器),都需要正确设置服务器的权限和身份验证,以便有机会工作。
答案 3 :(得分:1)
您可以使用任何UNC路径:\\machine\sharedFolder
。如果您不想设置共享文件夹,可以使用$ sign:\\machine\c$\program files\etc
引用计算机上的任何驱动器。如果您的计算机位于Active Directory中,或者如果目标计算机上的本地用户具有相同的用户名和密码,则Windows将无缝地处理身份验证。
答案 4 :(得分:0)
答案 5 :(得分:0)
我想你想要:
XCOPY c:\myproject\build\*.* \\server\\build\ /S /E
答案 6 :(得分:0)
以上所有内容似乎都是一个很好的答案 - 您可以使用msbuild脚本和msbuild社区任务来完成所有这些 - 他们可以压缩您的构建并将其ftp到远程服务器。
我刚为我们的一个网站设置了这个,花了几个小时来解决它,但它在发布中构建网站,更新配置文件以进行生产,删除不必要的文件然后执行上传。
答案 7 :(得分:0)
是解决方案
"xcopy D:\\folder\\container \\\\servername\\folder\\container\\ \/E \/H \/Y"