如何使用MSBuild将文件复制到需要密码的网络共享?

Phi*_*ale 2 msbuild msbuild-task

我已经创建了一个MSBuild.xml文件来自动化我的ASP.NET项目构建.它构建项目,发布它,拉链并将zip复制到网络共享.如果我之前已经登录过网络文件夹,这一切都完美无缺.访问网络共享后,会记住用户名和密码,直到我退出计算机.如果我以前没有登录,则在运行构建文件时出现"失败:未知用户名或密码错误"错误.无论我以前是否访问过网络共享,我都希望构建工作始终有效.

目前我正在使用复制任务将zip文件复制到网络共享.我已经检查了复制任务文档,但我看不到任何包含凭据的方法.那么,如何将文件复制到网络共享传递所需的用户名和密码?

这是我正在使用的复制任务的示例.所有属性都在MSBuild.xml文件的顶部定义:

<Target Name="CopyToServer">
    <Copy SourceFiles="$(ReleaseFolder)\$(ZipFileName).zip" DestinationFolder="$(WebServerRoot)" />
</Target>
Run Code Online (Sandbox Code Playgroud)

Gen*_*lph 5

我有同样的问题.但是我每次使用app部署时都不想输入密码RunAs.相反,我使用via Copy包装的任务:net useExec

<Target Name="CopyOutput">
    <ItemGroup>
        <PackagedFiles Include="$(ProjectName)\obj\$(Configuration)\Package\PackageTmp\**\*.*"/>
    </ItemGroup>
    <Exec Command="net use $(DestPath) /user:$(DestLogin) $(DestPass)" ContinueOnError="false"/>
    <Copy SourceFiles="@(PackagedFiles)" 
          DestinationFiles="@(PackagedFiles->'$(DestPath)\%(RecursiveDir)%(Filename)%(Extension)')"
          ContinueOnError="true"/>
    <Exec Command="net use $(DestPath) /delete" />
</Target>
Run Code Online (Sandbox Code Playgroud)

DestPath,DestLogin和DestPass我通过环境变量设置.

感谢Phil的回答和这个.