You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> This repo has been populated by an initial template to help get you started. Please
4
-
> make sure to update the content to build a great experience for community-building.
5
-
6
-
As the maintainer of this project, please make a few updates:
7
-
8
-
- Improving this README.MD file to provide a great experience
9
-
- Updating SUPPORT.MD with content about this project's support experience
10
-
- Understanding the security reporting process in SECURITY.MD
11
-
- Remove this section from the README
3
+
The overarching effort for MSBuildCache is an evolution of the [MSBuild Project Cache](https://github.com/dotnet/msbuild/blob/main/documentation/specs/project-cache.md) to enable the "cache add" scenarios. MSBuildCache is a plugin implementation which takes advantage of this.
12
4
13
5
## Contributing
14
6
@@ -24,10 +16,85 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
24
16
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
The path may need to be adjusted based on the repo and where you have MSBuildCache cloned.
55
+
56
+
Finally add a `PackageReference` to MSBuildCache to the repo you're testing with version `*-*` to ensure the latest gets picked up. This may look different from repo to repo but here is an example:
**NOTE!** Because you're using a locally built package, you may need to clear it from your package cache after each iteration via a command like `rmdir /S /Q %USERPROFILE%\.nuget\packages\Microsoft.MSBuildCache`. Additionally, to ensure you're not using the head version of the package, you may need to create a branch and a dummy commit locally to ensure the version is higher.
63
+
64
+
**NOTE!** MSBuildCache currently does not handle incremental builds well! The current target scenario is for CI environments, so **it's expected that the repo is always clean before building**. The main reason for this gap is the same as QuickBuild: file probes and directory enumerations are not considered.
65
+
66
+
To enable file reporting via detours in MSBuild, ensure `/graph` and `/reportfileaccesses` are used. The latter is new as of these unmerged MSBuild changes.
67
+
68
+
Example of a set of commands to test MSBuildCache e2e in some repo:
There is a built-in mechanism to passing settings to a plugin, which is to add metadata to the `ProjectCachePlugin` item. This is then exposed to the plugin via the `CacheContext` during initialialization.
91
+
92
+
To add additional setting, add it to `PluginSettings` and `src\MSBuildCache\build\MicrosoftMSBuildCache.targets`. For naming convensions, follow what you see but the gist is that the property name should be the setting name prefixed by "MSBuildCache".
93
+
27
94
## Trademarks
28
95
29
96
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
0 commit comments