C# XCOPY到远程服务器

C# XCOPY到远程服务器,c#,deployment,xcopy,C#,Deployment,Xcopy,为了改进我的ASP.NET应用程序的部署/构建过程,我想做一个.bat 在发布模式下生成当前解决方案 xcopy将文件复制到远程服务器 通过命令行创建发布版本很容易 但是如何将文件复制到远程服务器 我想我必须将远程目的地映射到网络驱动器(?)。但是,我无法连接到远程服务器,尽管我已为服务器上的文件夹启用了文件共享。可能是防火墙阻止了请求?我应该开哪个港口?还是有其他解决办法 编辑 感谢您迄今为止的所有答案,但我可能需要一个关于如何在服务器上设置文件夹共享的分步指南。我共享了文件夹,打开了端口

为了改进我的ASP.NET应用程序的部署/构建过程,我想做一个
.bat

  • 在发布模式下生成当前解决方案
  • xcopy
    将文件复制到远程服务器
通过命令行创建发布版本很容易

但是如何将文件复制到远程服务器

我想我必须将远程目的地映射到网络驱动器(?)。但是,我无法连接到远程服务器,尽管我已为服务器上的文件夹启用了文件共享。可能是防火墙阻止了请求?我应该开哪个港口?还是有其他解决办法

编辑


感谢您迄今为止的所有答案,但我可能需要一个关于如何在服务器上设置文件夹共享的分步指南。我共享了文件夹,打开了端口445以便连接到服务器,但仍然无法从本地计算机连接到服务器,以便将网络路径映射到系统驱动器。

可能值得通过UNC路径使用XCOPY移动文件

\\计算机\文件夹


这将要求您具有从原始服务器访问文件夹的权限。检查文件夹是否已共享,以及是否已授予相关的读/写权限。

是否尝试释放该文件夹

它可以跨网络移动文件、运行预构建bat文件、文件屏蔽等


我以前在.net 1.1项目中使用过它。

如果服务器在您的本地网络上,我建议使用
robocopy
而不是
xcopy
——它有许多更有用的选项和错误重试功能。它可以很好地处理UNC名称(我相信
xcopy
也可以)。我认为它可以在较新的Windows客户机上使用——如果不是在您的机器上,Google for it——它可以在各种资源工具包下载中使用(我不知道微软是否/何时开始将它包括在操作系统发行版中的详细信息,因为我已经在我的工具工具包中使用了很长很长时间)

如果服务器不是本地的,则可以编写命令行FTP客户端脚本以执行传输。如果您需要额外的灵活性或安全性,还有许多其他文件传输选项,包括


当然,在任何一种情况下(本地或远程服务器),都需要正确设置服务器的权限和您的身份验证,这样才有机会工作。

您可以使用任何UNC路径:
\\machine\sharedFolder
。如果不想设置共享文件夹,可以使用$符号引用计算机上的任何驱动器:
\\machine\c$\program files\etc
。如果您的计算机位于Active Directory中,或者目标计算机上的本地用户具有相同的用户名和密码,Windows将无缝地处理身份验证。

我想您需要:

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

以上所有这些似乎都是很好的答案—您可以使用msbuild脚本和msbuild社区任务来完成所有这些—它们可以压缩您的构建并将其ftp到远程服务器


我刚刚为我们的一个网站设置了这个,花了几个小时来了解它,但它在发行版中构建了该网站,更新了用于生产的配置文件,删除了不必要的文件,然后进行了上载。

由于您部署的是ASP.Net网站,我假设您处于windows环境中(不智能?:)。
所以忘掉.bat,然后去POWERSHELL

无论如何,这不是你问题的重点。。。 要复制到远程文件夹,您应有权在远程计算机上执行此操作

检查本地计算机和远程计算机上的帐户是否相同。 例如,如果您使用“Pipo”登录域“Work”中的本地计算机,则必须授予此帐户写入远程计算机上的特殊文件夹的权限

您可以通过右键单击文件夹、安全选项,然后选择正确的标识来实现这一点

以下是一个分步指南:


在寻找了这么多答案后,这里是解决方案

"xcopy D:\\folder\\container \\\\servername\\folder\\container\\ \/E \/H \/Y"

是否有关于如何设置共享服务器的分步指南?我似乎无法让它工作。如何设置服务器可能是serverfault.com的一个问题,而不是堆栈溢出这是一个通用的windows链接。此处未包含任何有关.NET或powershell的内容。