gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:00:00 24 4
gpt4 key购买 nike

我创建了一个 MSBuild.xml 文件来自动构建 ASP.NET 项目。它构建项目、发布项目、压缩项目并将 zip 复制到网络共享。如果我之前已经登录到网络文件夹,这一切都可以完美运行。访问网络共享后,系统会记住用户名和密码,直到我注销计算机为止。如果我之前没有登录过,则在运行构建文件时会收到“失败:未知的用户名或错误密码”错误。我希望构建始终有效,无论我之前是否访问过网络共享。

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

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

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

最佳答案

我也遇到了同样的问题。但我不想每次使用 RunAs 部署应用程序时都输入密码。相反,我通过 Exec 使用由 net use 包装的 Copy 任务:

<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>

DestPath、DestLogin 和 DestPass 我通过环境变量设置。

感谢菲尔的回答和this one .

关于msbuild - 如何使用 MSBuild 将文件复制到需要密码的网络共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5646669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com