我目前正在使用EntityFramework Code First创建一个必须同时使用localdb和sqlservercompact 4.0的解决方案。我为此创建了额外的构建配置:LocalDb和SQLCE。显然,我需要为这些构建配置使用不同的app.config文件。 I found this excellent solution并使用了第二个选项:使用AfterBuild指令更改MSBuild行为。所以我将下面的XML包含在WPF应用程序的项目文件中:
<Target Name="AfterBuild">
<Delete Files="$(TargetDir)$(TargetFileName).config" />
<Copy SourceFiles="$(ProjectDir)\Config\App.$(Configuration).config" DestinationFiles="$(TargetDir)$(TargetFileName).config" />
</Target>
这在我家的Win8开发笔记本电脑上运行得很漂亮,但似乎在我工作的Win7桌面上忽略了该指令。我注意到我的class.dll已注释掉模板以添加PreBuild和AfterBuild指令,但WPF应用程序没有它。我检查了Build屏幕,看看该指令是否已执行。看起来这种变化不会被再次提取或覆盖。发生了什么事?