gpt4 book ai didi

c# - 如何确保 C# 项目中配置文件的更改导致 DLL 重建?

转载 作者:行者123 更新时间:2023-11-30 15:23:49 27 4
gpt4 key购买 nike

我在 Visual Studio 2015 中有一个 C# DLL 项目 (A),其中包含一个我想复制到输出的自定义配置文件,因此“复制到输出目录”设置为“如果更新则复制”。此 DLL 被同一解决方案中的另一个项目 (B) 引用。每当我重建项目 B 时,项目 A 的配置文件都会按我的意愿复制到它的输出目录。

问题是,如果我修改 配置文件,它不会被复制到输出。我认为这是因为项目 A 的输出没有改变,所以 MSBuild 不会费心将它复制到项目 B 的输出目录。

我找到的解决方法是将配置文件的内容类型设置为“嵌入式资源”,这会导致项目 A 在配置文件更改时重建。这行得通,但是有点麻烦。有没有更好的方法来获得相同的行为,而无需实际将配置文件包含在 DLL 中?

最佳答案

好吧,我想我想出了一个办法。 Microsoft.CSharp.Core.targets 中定义了一个 CustomAdditionalCompileInputs 项组,CoreCompile 目标依赖于此。所以我简单地添加了以下目标,使 CoreCompile 依赖于所有具有构建操作 NoneContent 的文件:

  <Target Name="EnsureRecompiledOnConfigFileChanges" BeforeTargets="BeforeBuild">
<!-- Recompile the project if any items of type "None" or "Content" change in case some of them are config files for a DLL. -->
<ItemGroup>
<CustomAdditionalCompileInputs Include="@(None)" />
<CustomAdditionalCompileInputs Include="@(Content)" />
</ItemGroup>
</Target>

关于c# - 如何确保 C# 项目中配置文件的更改导致 DLL 重建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33870068/

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