gpt4 book ai didi

visual-studio-2010 - 在VS2010中一键发布后将DLL文件复制到bin目录

转载 作者:行者123 更新时间:2023-12-01 09:14:18 35 4
gpt4 key购买 nike

我在 VS2010 中有一个 Web 应用程序,其中有许多 DLL,在 VS2010 中发布后需要将这些 DLL 复制到 bin 目录中。

我尝试将以下内容放入我的 .csproj 文件(位于 Web 应用程序的根文件夹中),但它似乎不起作用:

<Target Name="AfterBuild">
<ItemGroup>
<_CircularDependencies Include="DLLs\Circular\Dependencies\*.dll" />
</ItemGroup>
<Copy
SourceFiles="@(_CircularDependencies)"
DestinationFiles="@(_CircularDependencies->'bin\%(Filename)%(Extension)')"
SkipUnchangedFiles="true" />
</Target>

为了奖励积分,我复制了另一组要在发布后复制的 DLL,但我想在进行调试发布(对于 Win32)时使用一组,并在进行发布发布(x86)时使用另一组。

谢谢!

最佳答案

好的,我已经成功地让它完全正常工作了。感谢上面提供的答案,我已经能够将一些 MS Build 命令添加到 .csproj 文件中,以根据当前的构建配置将适当的 DLL 从各个文件夹复制到 bin 文件夹中。然而,由于这些是非托管 DLL(即不是 .NET),我无法创建对它们的正常引用,并且在发布过程中无法复制它们。我通过将文件作为“内容”动态添加到项目中来解决这个问题。

解决方案分为三个部分。首先,为 .csproj 文件顶部附近的文件创建一个项目组(我尝试在此处使用通用文件名以使其更清晰),其条件基于当前构建配置:

<ItemGroup Condition="'$(Configuration)' == 'Debug'">
<_UnmanagedDLLs Include="Win32DLLs\*.dll" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)' == 'Release'">
<_UnmanagedDLLs Include="x64DLLs\*.dll" />
</ItemGroup>

然后添加另一个项目组以在构建中包含这些 DLL(作为内容,而不是引用):

<ItemGroup>
<Content Include="@(_UnmanagedDLLs->'bin\%(Filename)%(Extension)')" />
</ItemGroup>

最后,在 .csproj 文件的底部,我在 AfterBuild 目标上进行复制:

<Target Name="AfterBuild">
<Copy SourceFiles="@(_UnmanagedDLLs)" DestinationFiles="@(_UnmanagedDLLs->'bin\%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
</Target>

这意味着我可以为我的 Windows 32 临时设备进行调试发布,并为我的 x64 生产设备进行发布发布,同时将我的 bin 文件夹排除在 SVN 之外。

关于visual-studio-2010 - 在VS2010中一键发布后将DLL文件复制到bin目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5289291/

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