mirror of
https://github.com/jamesstringer90/appsandbox.git
synced 2026-10-22 02:52:49 -05:00
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.
36 lines
1.9 KiB
XML
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>
|