gpt4 book ai didi

c# - Visual Studio 在发布时移动内容文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:00 24 4
gpt4 key购买 nike

我正在开发一个 Web 应用程序,它使用几个 XML 文件来存储数据。我将他们的构建操作设置为内容,并在安装时将文件成功复制到应用程序虚拟目录:

C:\inetpub\wwwroot\ApplicationName\

我遇到的问题是写入这些 XML 文件(为了保存设置和类似的东西)会导致很多写入权限问题。因此,为了解决这个问题,我尝试将这些文件从它们安装到的虚拟目录复制到 C 驱动器下的一个新目录,在 Web 部署项目中使用以下 PostBuildEvent:

xcopy "$(TargetDir)*.xml" "C:\CompanyName\ApplicationName\" /y

但是,这没有任何作用。我不确定这是因为安装程序中的 PostBuildEvents 实际上并未在安装时触发,而是仅在构建安装程序时触发,或者 TargetDir 是否代表 bin 目录:

C:\inetpub\wwwroot\ApplicationName\bin\

而不是根应用程序虚拟目录:

C:\inetpub\wwwroot\ApplicationName\

有人有什么想法吗?有没有人处理过这种事情?我真的被这个难住了。

更新:我包含了一个应该给予所有用户完全权限的 PostBuildEvent:

icacls "$(TargetDir)" /grant Users:F

但是好像并没有解决问题。

我也不确定 $(TargetDir) 究竟指向哪里,如果它是 ..\ApplicationName\或 ..\ApplicationName\bin\

最佳答案

您所要做的就是向运行 Web 应用程序池的上下文的用户授予完全权限。

您可以通过启动 IIS 管理器并查看 Application PoolsIdentity 列来找到此用户

有点像

cacls C:\inetpub\wwwroot\ApplicationName /G Users:F

将此子目录的所有权限授予计算机上的所有用户,如果您在 ApplicationPoolIndentity 下运行,请参阅 here

关于c# - Visual Studio 在发布时移动内容文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11890252/

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