C# PreBuildEvent未反映在项目依赖项中

C# PreBuildEvent未反映在项目依赖项中,c#,msbuild,csproj,C#,Msbuild,Csproj,我有两个C项目,其中一个是库,包含一个在PreBuildEvent期间修改的数据库文件。其内容已正确更新,并可在此库项目的bin\Debug文件夹中使用 出现此问题的原因是,在另一个项目(UI应用程序)中,数据库文件与我在PreBuildEvent中的更改之前相同 在下面的示例中,我将使用一个文本文件,其行为与此相同: ProjectLib.csproj TextFile1.txt 构建操作:内容 复制到输出目录:如果较新,则复制 预构建事件: echo test > $(TargetDi

我有两个C项目,其中一个是库,包含一个在PreBuildEvent期间修改的数据库文件。其内容已正确更新,并可在此库项目的bin\Debug文件夹中使用

出现此问题的原因是,在另一个项目(UI应用程序)中,数据库文件与我在PreBuildEvent中的更改之前相同

在下面的示例中,我将使用一个文本文件,其行为与此相同:

ProjectLib.csproj

TextFile1.txt 构建操作:内容 复制到输出目录:如果较新,则复制 预构建事件:

echo test > $(TargetDir)TextFile1.txt
ProjectLib\bin\Debug中TextFile1.txt的内容:

test
"empty"
Application.csproj

Application\bin\Debug中TextFile1.txt的内容:

test
"empty"
从何处拾取数据库文件?从$ProjectDir还是$TargetDir?编辑:数据库文件从$ProjectDir中选取。您可以看到它使用msbuild执行生成。最后有一个名为_CopyOutOfDataSourceItemsToOutputDirectory的目标,它将源显示为$ProjectDir


有没有办法修改PreBuildEvent中的文件-库bin\Debug中的文件-并将其正确输出到应用程序bin\Debug?

为什么要将构建系统设计为两个独立的项目覆盖关键依赖项?

因为数据库文件是库和示例的可交付文件应用但是,即使我将数据库文件更改为与库相同的项目,在部署示例应用程序时也会发生相同的错误。首先,我用不同的扩展名.bkp将该文件添加到项目中,然后在PreBuildEvent中添加了一个文件副本。bkp文件被复制到正确的名称。在project中,我添加了对这两个文件的引用,即使在构建之前不存在正确的文件。对于bkp,我设置为“无”,对于其他内容,我将保留问题,如果有人提供更好的解决方案。