Files
appsandbox/Directory.Build.targets
T
James Stringer c986d092bf Add EV + Microsoft-attestation driver signing and release packaging
YubiKey-gated signing/packaging driven from the VS Release|x64 build:
- make-release.ps1 / sign-drivers.ps1: EV-sign all binaries + driver
  .sys/.dll, submit drivers to Microsoft for attestation in parallel,
  deposit the returned MS-signed drivers into bin\Release\drivers, and
  build a flat AppSandbox-<ver>-x64.zip. Token presence is detected via
  WinSCard + a silent NCrypt key-open, so an unplugged or unrelated card
  never triggers an "insert smart card" dialog; no token => test-sign
  only, no packaging.
- AppSandboxPackage.vcxproj runs it as a post-build step.
- Directory.Build.props/targets + build/version.rc: single-source version
  stamped into every binary and into the driver INFs (StampInf).
- VDD INF: pull WUDFRd via Include/Needs + Win11 decoration to pass
  infverif /h for Partner Center submission.
- Default new Windows VMs to Test Mode off (shipped drivers are MS-signed).
- SIGNING.md documents the git-ignored partner-center.local.json that you
  must create with the Entra API secrets for driver attestation.

Partner Center credentials stay in git-ignored tools/sign/*.local.* files.
2026-05-31 22:21:09 -04:00

36 lines
1.9 KiB
XML

<Project>
<!--
Auto-embed a VERSIONINFO resource (driven by Directory.Build.props) into every EXE/DLL we
build, so FileVersion / ProductVersion / CompanyName come from the single source. Each
binary's OriginalFilename / InternalName / FILETYPE are derived from its own MSBuild
properties, so individual projects need no edits.
Opt-out: a project that sets <AsbEmbedVersion>false</AsbEmbedVersion> is skipped (the
drivers do this - they version via DriverVer/StampInf, not a binary VERSIONINFO). Utility
projects are skipped automatically by ConfigurationType.
This file is imported AFTER each project's body, so $(TargetName)/$(TargetFileName)/
$(ConfigurationType) are already resolved here.
-->
<PropertyGroup Condition="'$(AsbEmbedVersion)' == '' And ('$(ConfigurationType)' == 'Application' Or '$(ConfigurationType)' == 'DynamicLibrary')">
<AsbEmbedVersion>true</AsbEmbedVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(AsbEmbedVersion)' == 'true'">
<AsbFileType Condition="'$(ConfigurationType)' == 'DynamicLibrary'">VFT_DLL</AsbFileType>
<AsbFileType Condition="'$(AsbFileType)' == ''">VFT_APP</AsbFileType>
</PropertyGroup>
<ItemGroup Condition="'$(AsbEmbedVersion)' == 'true'">
<ResourceCompile Include="$(MSBuildThisFileDirectory)build\version.rc" />
</ItemGroup>
<!-- Values are passed UNQUOTED and stringized inside version.rc (avoids quote-escaping
through MSBuild -> rc.exe). Filenames/versions contain no spaces, so this is safe. -->
<ItemDefinitionGroup Condition="'$(AsbEmbedVersion)' == 'true'">
<ResourceCompile>
<PreprocessorDefinitions>ASB_VERSION_COMMA=$(AsbVersionComma);ASB_VERSION_STR=$(AsbVersion);ASB_ORIG_FILENAME=$(TargetFileName);ASB_INTERNAL_NAME=$(TargetName);ASB_FILE_TYPE=$(AsbFileType);%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
</Project>