gpt4 book ai didi

MSBuild项目文件: Copy item to specific location in output directory

转载 作者:行者123 更新时间:2023-12-03 01:20:49 30 4
gpt4 key购买 nike

在清理我继承的项目上的文件夹/文件结构的过程中,我遇到了组织所需外部库的问题。我想将它们保留在自己的 .\dll\ 文件夹中,但它们没有被正确复制到构建目录。它们应该位于根构建目录中,但它们被移动到子文件夹中。

我的 .csproj 文件包含以下 xml:

<Project>
<ItemGroup>
<None Include="dlls\libraryA.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

然后,在构建时,libraryA.dll 文件被复制到 bin\Debug\dll\ 文件夹,但我希望它位于 bin\调试\文件夹。

最佳答案

我尝试过这个,msbuild 总是想使用它们的目录路径复制文件,但有一个解决方法......

编辑 csproj 文件并在此行之后:

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

添加这些行:

  <PropertyGroup>
<PrepareForRunDependsOn>$(PrepareForRunDependsOn);MyCopyFilesToOutputDirectory</PrepareForRunDependsOn>
</PropertyGroup>

<Target Name="MyCopyFilesToOutputDirectory">
<Copy SourceFiles="@(None)" DestinationFolder="$(OutDir)" />
</Target>

输出文件的副本发生在PrepareForRun 目标中。这会将您自己的目标添加到作为PrepareForRun 的一部分执行的目标列表中。

此示例复制“无”项目组中的所有项目。如果您不想复制其他“无”文件,您可以创建自己的项目组(例如 MyFiles)并在该项目组上进行复制。当我尝试此操作时,我必须通过直接编辑 csproj 文件来更改项目组名称。 Visual Studio 不允许我从 UI 设置文件的项目组,但在我编辑 csproj 并更改它后,Visual Studio 正确显示了我的自定义项目组名称。

关于MSBuild项目文件: Copy item to specific location in output directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5915610/

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