|Title:||System.Data.SQLite.Core.targets should run CopySQLiteInteropFiles before PostBuildEvent|
|Last Modified:||2014-12-05 22:15:55|
|Version Found In:||188.8.131.52|
anonymous added on 2014-11-06 09:36:48:
System.Data.SQLite.Core.targets, first shipped with 184.108.40.206, runs CopySQLiteInteropFiles target at the end of the build, which means it happens after <PostBuildEvent> (settable from Visual Studio -> project Properties -> Build Events tab). This means that for example when I add there something like: xcopy $(TargetDir) ..\..\someOtherDir It will copy build results, but without sqlite assemblies, which gets copied to TargetDir later. Fix it by changing: <PropertyGroup> <BuildDependsOn> $(BuildDependsOn); CopySQLiteInteropFiles; </BuildDependsOn> <CleanDependsOn> $(CleanDependsOn); CleanSQLiteInteropFiles; </CleanDependsOn> </PropertyGroup> For example to: <PropertyGroup> <PostBuildEventDependsOn> $(PostBuildEventDependsOn); CopySQLiteInteropFiles; </PostBuildEventDependsOn> <CleanDependsOn> $(CleanDependsOn); CleanSQLiteInteropFiles; </CleanDependsOn> </PropertyGroup>
mistachkin added on 2014-11-07 23:54:01:
How can anything in the "build event" fire after the "post build event"?
mistachkin added on 2014-11-08 00:06:34:
Related to [e796ac82c1].
mistachkin added on 2014-11-08 07:19:25:
Ok, apparently PostBuildEvent is done as part of the Build processing.
mistachkin added on 2014-11-19 00:52:06:
A candidate fix is checked in on the publishWithNuGetPkg branch, here: [/timeline?r=publishWithNuGetPkg]
mistachkin added on 2014-11-25 17:31:11:
Fixed on trunk via check-in [eb697cca1c]. Please let us know if this fix does not address the issue in your environment.
mistachkin added on 2014-12-05 03:07:11:
Re-opened. The fix has issues when there is no PostBuildEvent defined.
mistachkin added on 2014-12-05 03:24:40:
This should be corrected by check-in [7de90061a2].
mistachkin added on 2014-12-05 22:15:55:
The solution of calling the CopySQLiteInteropFiles MSBuild target twice is not ideal; however, I do not see any other reasonable way of making sure that the SQLite interop files are copied whether or not a PostBuildEvent is present.