[wix-devs] Building mirco repos...

Rob Mensching rob at firegiant.com
Sat Dec 22 22:27:05 PST 2018


Today I checked in the "SmartPackageReference" and a fix to Core.Native. You should now be able to open any of the .sln files in the micro-repos and work on that code alone. You can also create a custom .sln, and include projects across micro-repos. Home\enlist.cmd will help create the uber-.sln for all micro-repos you enlist in (although we need to make enlist.cmd handle forks) 

Note: You'll find projects with in micro-repos often use ProjectReferences. Due to limitations in Visual Studio, all ProjectReferences for a project must be in your .sln file. It is the PackageReferences that are smart enough to be converted into ProjectReferences in memory.

These two fixes from today should make life much more enjoyable in micro-repos.

Note: I did not finish adding SmartPackageReference support to all of the .wixext repos yet. Util.wixext and Firewall.wixext are complete. I'll get the others soon.


-----Original Message-----
From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of Rob Mensching via wix-devs
Sent: Thursday, December 20, 2018 10:17 AM
To: Hoover, Jacob <Jacob.Hoover at greenheck.com>; WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Cc: Rob Mensching <rob at firegiant.com>
Subject: Re: [wix-devs] Building mirco repos...

Yeah, so here's the current problem (that I'm working on with improved build logic):

    If you enlist in a repo, your .sln needs to refer include the referenced projects from all the child repos when building Debug.

An example, will be clearer. If you enlist in Data and Core then open a .sln with any Core projects in it, you'll also need to add the Data projects to the .sln because the Core projects have a Package/ProjectReference to Data. You can see this in the project files like:

    <ProjectReference Include="$(WixToolsetRootFolder)\Data\src\WixToolset.Data\WixToolset.Data.csproj" Condition=" '$(Configuration)' == 'Debug' And Exists('$(WixToolsetRootFolder)\Data\README.md') " />
    <PackageReference Include="WixToolset.Data" Version="4.0.*" Condition=" '$(Configuration)' == 'Release' Or !Exists('$(WixToolsetRootFolder)\Data\README.md') " />

The change I'm working on will simplify the above to only a PackageReference then it does "magic" when loading the .sln so that PackageReferences are in-memory changed to ProjectReference for matching projects in the .sln. I've tested it a little bit and it works really well. Makes the micro-repo solution much easier to use.

That'll just leave me with the Core.Native testing problems.


-----Original Message-----
From: Hoover, Jacob <Jacob.Hoover at greenheck.com> 
Sent: Thursday, December 20, 2018 9:24 AM
To: Rob Mensching <rob at firegiant.com>; WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Subject: RE: Building mirco repos...

Doesn't seem to matter which repo, they all fail.
Yes a sln.
The sln's are the ones included in the repo's.

Core, Core.Native, Data, Dtf, Dutil, Extensibility, wcautil, wix4, and WixBuildTools.

-----Original Message-----
From: Rob Mensching [mailto:rob at firegiant.com] 
Sent: Thursday, December 20, 2018 11:21 AM
To: Hoover, Jacob <Jacob.Hoover at greenheck.com>; WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Subject: RE: Building mirco repos...

What did you build? A .sln? If so, what is in your .sln? Which repos did you clone?

-----Original Message-----
From: Hoover, Jacob <Jacob.Hoover at greenheck.com>
Sent: Thursday, December 20, 2018 9:13 AM
To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Cc: Rob Mensching <rob at firegiant.com>
Subject: RE: Building mirco repos...

Looks like barf but...

Severity        Code    Description     Project File    Line    Suppression State
Error   CS1061  'Type' does not contain a definition for 'GUID' and no extension method 'GUID' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)   WixToolset.Core.Native  Z:\Projects\WIX4-SPLIT\Core.Native\src\WixToolset.Core.Native\MsmInterop.cs     503     Active
Error   CS1061  'Type' does not contain a definition for 'GUID' and no extension method 'GUID' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)   WixToolset.Core.Native  Z:\Projects\WIX4-SPLIT\Core.Native\src\WixToolset.Core.Native\MsmInterop.cs     503     Active
Error   CS1061  'Type' does not contain a definition for 'GUID' and no extension method 'GUID' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)   WixToolset.Core.Native  Z:\Projects\WIX4-SPLIT\Core.Native\src\WixToolset.Core.Native\MsmInterop.cs     504     Active
Error   CS0117  'Assembly' does not contain a definition for 'GetExecutingAssembly'     WixToolset.Core.Native  Z:\Projects\WIX4-SPLIT\Core.Native\src\WixToolset.Core.Native\WixNativeExe.cs   22      Active
Error   CS0246  The type or namespace name 'ProcessStartInfo' could not be found (are you missing a using directive or an assembly reference?)  WixToolset.Core.Native  Z:\Projects\WIX4-SPLIT\Core.Native\src\WixToolset.Core.Native\WixNativeExe.cs   42      Active
Error   CS0103  The name 'Process' does not exist in the current context        WixToolset.Core.Native  Z:\Projects\WIX4-SPLIT\Core.Native\src\WixToolset.Core.Native\WixNativeExe.cs   53      Active
Error           One or more projects are incompatible with .NETCoreApp,Version=v2.0.
Error           Project WixToolset.Core.Native is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Project WixToolset.Core.Native supports: netstandard2.0 (.NETStandard,Version=v2.0)
Error           Cannot find project info for 'Z:\Projects\WIX4-SPLIT\Core.Native\src\WixToolset.Core.Native\WixToolset.Core.Native.csproj'. This can indicate a missing project reference.      WixToolsetTest.Core.Native      C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets   92
NOTE: This email was received from an external source. Please use caution when opening links or attachments in the message.
____________________________________________________________________
WiX Toolset Developer Mailing List provided by FireGiant http://www.firegiant.com/



More information about the wix-devs mailing list