# Kzu's Today I Learned

## Today I Learned

- [Today I Learned](https://til.cazzulino.com/readme.md): This is the site where I share little snippets and tidbits of learnings that don't deserve a full blog post on https://cazzulino.com, grouped by areas, rather than by date.
- [How to get messages logged in dotnet build output](https://til.cazzulino.com/dotnet/how-to-get-messages-logged-in-dotnet-build-output.md): \<Message Importance="high" Text="Gone?!" /> gone?
- [How to emit descriptions for exported JSON schema using JsonSchemaExporter](https://til.cazzulino.com/dotnet/how-to-emit-descriptions-for-exported-json-schema-using-jsonschemaexporter.md)
- [NuGet](https://til.cazzulino.com/dotnet/nuget.md): NuGet-related learnings
- [Suppress dependencies when packing](https://til.cazzulino.com/dotnet/nuget/suppress-dependencies-when-packing.md)
- [Hide contentFiles from your nuget packages](https://til.cazzulino.com/dotnet/nuget/hide-contentfiles-from-your-nuget-packages.md)
- [Packaging transitive analyzers with NuGet](https://til.cazzulino.com/dotnet/nuget/packaging-transitive-analyzers-with-nuget.md)
- [How to add search to static nuget feed](https://til.cazzulino.com/dotnet/nuget/use-dotnet-vs-to-get-developer-prompt-in-terminal.md)
- [Populate RepositoryBranch in CI for NuGet Pack](https://til.cazzulino.com/dotnet/nuget/populate-repositorybranch-in-ci-for-nuget-pack.md)
- [Ignore folder from dotnet-format](https://til.cazzulino.com/dotnet/ignore-folder-from-dotnet-format.md)
- [Accessing Tor .onion URLs via HttpClient with .NET6](https://til.cazzulino.com/dotnet/accessing-tor-via-httpclient-with-.net6.md)
- [Installing .NET 5.0 on Raspberry Pi 4](https://til.cazzulino.com/dotnet/installing-.net-5.0-on-raspberry-pi-4.md)
- [Quickly check C# compiler and language version](https://til.cazzulino.com/dotnet/quickly-check-c-compiler-and-language-version.md)
- [Disable diagnostic analyzers for entire folder/submodules](https://til.cazzulino.com/dotnet/disable-diagnostic-analyzers-for-entire-folder-submodules.md)
- [Persisting output files from source generators](https://til.cazzulino.com/dotnet/persisting-output-files-from-source-generators.md)
- [Use C# 9 records in non-net5.0 projects](https://til.cazzulino.com/dotnet/use-c-9-records-in-non-net5.0-projects.md)
- [AsyncLocal never leaks and is safe for CallContext-like state](https://til.cazzulino.com/dotnet/asynclocal-never-leaks-and-is-safe-for-callcontext-like-state.md): Even if it's typically used in a static field, the values never leak since they are bound to a transient ExecutionContext
- [Using HashCode in .NETFramework](https://til.cazzulino.com/dotnet/using-hashcode-in-.netframework.md): How to use HashCode type in full .NET, which doesn't support it
- [How to locate dotnet](https://til.cazzulino.com/dotnet/how-to-locate-dotnet.md): How to locate dotnet from the currently running .NET Core application
- [Conditional unit tests](https://til.cazzulino.com/testing/conditional-unit-tests.md): How to run xunit tests conditionally depending on the environment that is running the tests
- [Skip tagged scenarios in SpecFlow with Xunit](https://til.cazzulino.com/testing/skip-tagged-scenarios-in-specflow-with-xunit.md): How to skip scenarios with a certain tag from executing
- [How to get user home dir ~ cross-platform](https://til.cazzulino.com/msbuild/how-to-get-user-home-dir-cross-platform.md)
- [Modifying the build for every solution in a repository](https://til.cazzulino.com/msbuild/modifying-the-build-for-every-solution-in-a-repository.md)
- [Detect CI builds for every CI system](https://til.cazzulino.com/msbuild/detect-ci-builds-for-every-ci-system.md)
- [Modify all command-line builds in entire repo](https://til.cazzulino.com/msbuild/modify-all-command-line-builds-in-entire-repo.md)
- [Write entire XML fragments in MSBuild with XmlPoke](https://til.cazzulino.com/msbuild/write-entire-xml-fragments-in-msbuild-with-xmlpoke.md)
- [How to select first item in an ItemGroup](https://til.cazzulino.com/msbuild/how-to-select-first-item-in-an-itemgroup.md)
- [How to include commit URL in nuget package description](https://til.cazzulino.com/msbuild/how-to-include-commit-url-in-nuget-package-description.md)
- [How to include package reference files in your nuget](https://til.cazzulino.com/msbuild/how-to-include-package-reference-files-in-your-nuget-package.md)
- [How to build project when content files change](https://til.cazzulino.com/msbuild/how-to-build-project-when-content-files-change.md)
- [How to launch multiple Azure Functions apps on different ports](https://til.cazzulino.com/azure/how-to-launch-multiple-azure-functions-apps-on-different-ports.md)
- [C# script function apps beyond Azure portal](https://til.cazzulino.com/azure/c-script-function-apps-beyond-azure-portal.md)
- [Publishing function app from GitHub folder](https://til.cazzulino.com/azure/publishing-function-app-from-github-folder.md)
- [Exploring Azure Data with Kusto and Dashboards](https://til.cazzulino.com/azure/exploring-azure-data-with-kusto-and-dashboards.md)
- [Shared secret authorization with Azure SignalR Service](https://til.cazzulino.com/azure/shared-secret-authorization-with-azure-signalr-service.md)
- [Using Azure File Copy from DevOps yaml pipeline](https://til.cazzulino.com/azure/using-azure-file-copy-from-devops-yaml-pipeline.md): I learned that it's not enough to authorize Azure Resource Manager access from DevOps
- [Code-less redirection with serverless Azure Functions](https://til.cazzulino.com/azure/code-less-redirection-with-serverless-azure-functions.md): How to quickly and simply configure redirections without writing code in Azure Functions
- [How to run Azure Storage unit tests in CI](https://til.cazzulino.com/devops-ci-cd/how-to-run-azure-storage-unit-tests-in-ci.md)
- [How to skip steps or jobs in GitHub Actions for PRs from forks](https://til.cazzulino.com/devops-ci-cd/how-to-skip-steps-or-jobs-in-github-actions-for-prs-from-forks.md)
- [Update version and publish npm from GH](https://til.cazzulino.com/devops-ci-cd/update-version-and-publish-npm-from-gh.md): Setting up CI with GitHub Actions to update a node.js package version from GitHub release tag and publish it to npm
- [Push to protected branch from GitHub actions](https://til.cazzulino.com/devops-ci-cd/push-to-protected-branch-from-github-actions.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://til.cazzulino.com/readme.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
