gen*_*ser 1 msbuild copy visual-studio-2010
要在发布构建后复制不同位置的文件,我尝试了以下操作:
编辑csproj文件并添加此代码,将dll复制到相对路径的bin.
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
</PropertyGroup>
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="..\*project*\**\*.dll" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>bin\%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
Run Code Online (Sandbox Code Playgroud)
这绝对没问题.我只是想知道是否可以使用像这样的post build事件来完成..(这不起作用).
if $(ConfigurationName) == Release xcopy /y "$(ProjectDir)$(OutDir)$(TargetFileName)" "$(SolutionDir)$(OutDir)"
Run Code Online (Sandbox Code Playgroud)
第一种方式是在VS2010中单击发布的"唯一方法"吗?值得关注的是,在VS2010中,csproj文件中的更改不会显示在任何地方.
是的,您可以在不使用AfterBuild目标和复制任务进行黑客攻击的情况下执行此操作:
<Target Name="AfterBuild">
<ItemGroup>
<_CustomFiles Include="..\**\*.dll" />
</ItemGroup>
<Copy
SourceFiles="@(_CustomFiles)"
DestinationFiles="@(_CustomFiles->'bin\%(Filename)%(Extension)')"
SkipUnchangedFiles="true" />
</Target>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5555 次 |
| 最近记录: |