Boj*_*jan 4 msbuild visual-studio visual-studio-2017
当前,当我运行我的项目时,它将执行我设置的构建后命令。但是,仅当项目进行了更改时,这才是正确的。我的最终目标是在每次构建项目时都运行我的项目。但是,我注意到的是,如果要按角度更改HTML文件,则该项目不会检测到任何更改,因此不会再次生成,因此不会运行ng build命令。
有没有办法强迫它始终运行生成后命令,或者即使没有检测到更改也可以使其始终重建?也许还有另一种方法可以做到这一点?
这是一个.NET Core WebApp,运行我的构建后事件的代码位于我的.csproj文件中
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="echo Building Angular App..." />
<Exec Command="cd ClientApp && ng build" />
</Target>
Run Code Online (Sandbox Code Playgroud)
你可能稍有不同在.csproj的文件,并设置配置后生成事件RunPostBuildEvent,以Always按下面:
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
...
<PostBuildEvent>cd ClientApp && ng build</PostBuildEvent>
<RunPostBuildEvent>Always</RunPostBuildEvent>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
编辑:正如我在进行更多测试后发现的RunPostBuildEvent那样,它的行为并不像我预期的那样。因此,“解决方法”是DisableFastUpToDateCheck按照以下方式添加:
<PropertyGroup>
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
<PostBuildEvent>cd ClientApp && ng build</PostBuildEvent>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
从MSDN:
仅适用于 Visual Studio 的布尔值。Visual Studio 生成管理器使用称为 FastUpToDateCheck 的过程来确定是否必须重新生成项目才能保持最新状态。此过程比使用 MSBuild 确定这一点要快。将该
DisableFastUpToDateCheck属性设置 为true允许您绕过 Visual Studio 生成管理器并强制它使用 MSBuild 来确定项目是否是最新的。
显然,这样做的缺点是项目将始终重建,因此这不是理想的解决方案。
有没有办法强迫它始终运行生成后命令,或者即使没有检测到更改也可以使其始终重建?
在最简单的方法是在属性设置DisableFastUpToDateCheck为true的项目文件中禁用FastUpToDateCheck的Visual Studio生成经理:
<PropertyGroup>
<DisableFastUpToDateCheck>True</DisableFastUpToDateCheck>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
检查有关DisableFastUpToDateCheck的MSDN:
一个仅适用于Visual Studio的布尔值。Visual Studio生成管理器使用名为FastUpToDateCheck的过程来确定是否必须重建项目以保持最新。此过程比使用MSBuild确定此过程更快。将DisableFastUpToDateCheck属性设置为true可以使您绕过Visual Studio构建管理器,并强制其使用MSBuild来确定项目是否最新。
此外,如果您想要一种将构建与构建后命令分开的方法,则可以使用MSBuild命令行直接构建该项目,而无需添加上述设置。
希望这可以帮助。
我通过将以下属性添加到我的项目文件中解决了这个问题
<RunPostBuildEvent>Always</RunPostBuildEvent>
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
Run Code Online (Sandbox Code Playgroud)
其他人将此作为答案发布,但由于某种原因被删除,所以我重新发布它,以便将来出现的任何人都可以看到我是如何解决它的。
| 归档时间: |
|
| 查看次数: |
1703 次 |
| 最近记录: |