我知道之前已经有人问过类似的问题(见Recursively copy all files with MSBuild和MSBuild recursive copy),但是我似乎无法使它在我的项目文件中正常工作。
我正在使用Visual Studio 2015,所以我不知道是否有任何变化。我也尝试遵循此页面上的第二个示例,但结果相同:https://msdn.microsoft.com/en-us/library/3e54c37h.aspx
我正在尝试从我的源目录递归地复制文件到我的inetpub目录。我在“BuildLocal”目标内设置了以下内容:
<ItemGroup>
<CopyFiles Include="**\*.cshtml" />
</ItemGroup>
<Copy SourceFiles="@(CopyFiles)" DestinationFiles="@(CopyFiles->'$(DeploymentFolder)\%(RecursiveDir)%(Filename)%(Extension)')" ContinueOnError="true" SkipUnchangedFiles="true" />
在我的PropertyGroup中,DeploymentFolder
变量被设置为:
<DeploymentFolder>C:\inetpub\websites\TestSite</DeploymentFolder>
我收到的错误信息是:
warning MSB3021: Unable to copy file "**\*.cshtml" to "C:\inetpub\websites\TestSite\**\*.cshtml". Illegal characters in path.
将CopyFile Include更改为
include="$(ProjectDir)**\*.cshtml"
也没有任何效果...
对于这个问题的任何帮助都将非常棒 :)
<CopyFiles Include="$(MyProjectDir)\**\*.cshtml" />
这样的东西。 - stijnCopy
任务上。如果将<ItemGroup>
移动到当前所在的<Target>
之外,行为是否会改变?这将强制在任何构建发生之前评估通配符。 - Rainer Sigwald