Open jchoover opened 5 months ago
Note, I ended up just adding all the v141's to get the compiler happy.
It seems MSVC v141 is called out in the README.md
for building the wix repo. What are you suggesting should be fixed?
Getting that error building inside VS? Probably expected -- VS doesn't know how to handle platform/toolset being set in .props/.targets files...
It seems MSVC v141 is called out in the
README.md
for building the wix repo. What are you suggesting should be fixed?
The workflows outlined in the readme aren't sufficient. I ended up checking them all to get that portion to build.
Getting that error building inside VS? Probably expected -- VS doesn't know how to handle platform/toolset being set in .props/.targets files...
No Dev Tools CLI build.
@jchoover you don't mention what version of VS you are using. I literally just tested the instruction on 17.9.6 last week copying and pasting the component names in and it built fine.
@jchoover you don't mention what version of VS you are using. I literally just tested the instruction on 17.9.6 last week copying and pasting the component names in and it built fine.
I think I see what I missed.. it's the ARM64 build tools not the ARM build tools.
I cant seem to get it to buil dat all even following the steps here a well
Also does not build well for me... fresh VS 2022 install + command line tools (working off of b9b2f1b4c69a1b509d487dc950b30b4ec9b0d040 tagged as wix 4.0.5)
Currently dying in dtf build:
LINK : fatal error LNK1104: cannot open file 'legacy_stdio_wide_specifiers.lib'
After digging quite a bit:
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.32.31326\bin\HostX86\x86\link.exe /ERRORREPORT:PROMPT /OUT:"D:\dev\wix\build\dtf\Debug\x86\SfxCA.dll" /NOLOGO /LIBPATH:D:\dev\wix\build\dtf\Debug\x86\ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib msi.lib cabinet.lib shlwapi.lib advapi32.lib comdlg32.lib user32.lib oleaut32.lib gdi32.lib shell32.lib ole32.lib version.lib /DEF:"EntryPoints.def" /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"D:\dev\wix\build\dtf\Debug\x86\SfxCA.pdb" /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"D:\dev\wix\build\dtf\Debug\x86\SfxCA.lib" /MACHINE:X86 /SAFESEH /guard:cf /IGNORE:4099 /sourcelink:"D:\dev\wix\build\dtf\obj\SfxCA\Debug\x86\SfxCA.sourcelink.json" /DLL D:\dev\wix\build\dtf\obj\SfxCA\Debug\x86\SfxCA.res
This command seems to be the source of (my?) issues.
Its not clear how this ends up producing the error about legacy_stdio_wide_specifiers but it appears this linker command is the culprit, so far.
EDIT:
This might be a partial fix for the dtf project, add the following (for x86):
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Link>
<AdditionalLibraryDirectories>C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.16.27023\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<AdditionalLibraryDirectories>C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.16.27023\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Link>
<AdditionalLibraryDirectories>C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.16.27023\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<AdditionalLibraryDirectories>C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.16.27023\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
I think there's (at least) a visual studio bug here - the libraries are not being linked to by Microsoft compiler, these should be automatically inserted into the linker's path but obviously are not.
Perhaps we shouldn't be using VS2022, too many bugs still.
Additional EDIT:
Got the wix sln file to resolve/wix to build....
List of things wrong:
CSC : error CS1566: Error reading resource 'WixToolset.Util.util.wixlib' -- 'Could not find file 'D:\dev\wix\build\Util.wixext\Debug\util.wixlib'.' [D:\dev\wix\src\ext\Util\wixext\Wix Toolset.Util.wixext.csproj]
VS2022 'Developer Command Prompt'
however the behavior of the build does not seem to improve when run from this prompt. There are quite a few variants of this prompt now with VS 2022... there is "Developer Command Prompt for VS 2022" as well as x86, x64, and cross compiler variations).-warnaserror
was causing this to fail build sections).Having debugged this build I somewhat understand the reasoning behind doing it this way (handling multiple versions of the build for multiple targets), however the build files leave unclear which "base" architecture things should be built for, and the indirection of the .proj files doesn't provide much benefit over specifying the build parameters directly in the scripts...
WiX Version
Lasted Code from wixtoolset/wix:main
.NET or MSBuild or Visual Studio Version
8.0.104
HeatWave Version
none
Windows Version
Win 10 22(H2) 19045.3930
Repro Repo
https://github.com/jchoover/wix4/tree/master
Repro Steps
Actual Result
wcautil failed with errors (0.0s) C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(456,5): error MSB8020: The build tools for Visual Studio 2017 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install Visual Studio 2017 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution". dutil failed with errors (0.0s)
Expected Result
Success?
Acknowledgements