【发布时间】:2020-11-17 19:16:31
【问题描述】:
我想将文件从一个目录移动到另一个目录,但它什么也不做。
这是我Product.wxs的部分内容:
<Feature Id="ProductFeature" Title="$(var.ProductName)" Level="1">
<ComponentRef Id="testCopy"/>
</Feature>
<DirectoryRef Id="dirConfigs">
<Component Id="web.config" Guid="8736259D-4FEE-4826-B109-76DD3B0EDAE7">
<CopyFile Id="CopyWebConfig"
SourceProperty="dirProject"
SourceName="Web.config"
DestinationProperty="dirConfigs"
DestinationName="Web.config"
/>
</Component>
</DirectoryRef>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.PlatformProgramFilesFolder)">
<Directory Id="dirParent" Name="$(var.CustomerName)">
<Directory Id="dirProject" Name="$(var.ProductName)">
<Directory Id="dirConfigs" Name="$(var.ConfigFolderName)">
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
编辑 我也尝试使用 Source/DestinationDirectory 而不是 Source/DestinationProperty 有任何想法吗? 提前致谢!
【问题讨论】:
-
在应用程序启动时进行文件复制通常比作为设置的一部分更容易 - 对于网络应用程序并不总是可行。应用程序启动代码更容易根据需要实现、调试和更改。这是一个选择吗? I have this old answer on CopyFile。看起来您正在将文件复制到它已经存在的文件夹中。尝试将
DestinationProperty="dirConfigs"更改为DestinationProperty ='DesktopFolder'作为测试? -
Christopher Painter 建议的另一种方法:"an override file" for web.config.
-
@SteinÅsmul 感谢您的评论!复制到 DesktopFolder 也不起作用,CopyFile 标签需要成为 File 标签的一部分,不幸的是 web.config 的“覆盖文件”不适用于我们:/
-
我不确定你的测试过程中发生了什么,但你可以尝试在 github.com 上找到更好的样本。 Here is a "stored search"。在撰写本文时,大约有 500 多次点击。
标签: asp.net wix windows-installer