diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml
index 0633d2275..68ee9743b 100644
--- a/.github/workflows/dotnet.yml
+++ b/.github/workflows/dotnet.yml
@@ -65,6 +65,37 @@ jobs:
name: Test Results (${{matrix.os}})
path: "**/TestResults/*.xml"
+ - name: Checkout Chorus Help # required for Chorus Merge Module
+ uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
+ with:
+ repository: sillsdev/chorushelp
+ path: lib
+ clean: false # don't delete other files from lib
+ if: matrix.os == 'windows-latest'
+
+ - name: Add msbuild to PATH
+ uses: microsoft/setup-msbuild@34cfbaee7f672c76950673338facd8a73f637506 # v1.1.3
+ if: matrix.os == 'windows-latest'
+
+ # ChorusMergeModule.msm is used by FieldWorks, FLExBridge, and possibly WeSay installers (as of 2022.12).
+ # CMM must be built after tests have been run, since the fixutf8.pyc files are generated only when the .py files are run.
+ - name: Build Merge Module
+ run: msbuild src/Installer/ChorusMergeModule.wixproj
+ if: matrix.os == 'windows-latest'
+
+ - name: Pack Merge Module
+ run: msbuild src/Installer/ChorusMergeModule.wixproj -t:pack
+ if: matrix.os == 'windows-latest'
+
+ - name: Upload Merge Modules
+ uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0
+ with:
+ name: chorus-merge-module
+ path: |
+ output/Release/*.msm
+ output/*.nupkg
+ if: matrix.os == 'windows-latest'
+
- name: Pack
run: dotnet pack --no-restore --no-build -c Release
diff --git a/.gitignore b/.gitignore
index d718e38e6..14ebca211 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
-build/NuGet.exe
-build/nuget.exe
+NuGet.exe
+nuget.exe
CopyToWeSay.bat
output/
obj/
@@ -21,6 +21,7 @@ mercurial/
build/old
launchSettings.json
lib/$(Configuration)
+*.nupkg
*.resources
*.userprefs
.vs/
diff --git a/build/Chorus.proj b/build/Chorus.proj
new file mode 100644
index 000000000..5e7cc9c26
--- /dev/null
+++ b/build/Chorus.proj
@@ -0,0 +1,96 @@
+
+
+ $(MSBuildProjectDirectory)/..
+ $(teamcity_build_checkoutDir)
+ Chorus.sln
+ $(RootDir)/$(Solution)
+ ChorusLibrary
+ Chorus
+ chorus
+ Release
+ KnownMonoIssue,
+ SkipOnTeamCity,SkipOnBuildServer,SkipOnTeamCityRandomTestFailure,$(ExtraExcludeCategories)
+ true
+ false
+ $(RootDir)/output/$(Configuration)
+ true
+ false
+
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Installer/ChorusMergeModule.nuspec b/src/Installer/ChorusMergeModule.nuspec
new file mode 100644
index 000000000..a6e0dda22
--- /dev/null
+++ b/src/Installer/ChorusMergeModule.nuspec
@@ -0,0 +1,15 @@
+
+
+
+ $PackageId$
+ $Version$
+ This is a merge module to set up https://github.com/sillsdev/chorus
+ SIL International
+ MIT
+ https://github.com/sillsdev/chorus
+ Copyright © 2010-$Year$ SIL International
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Installer/ChorusMergeModule.wixproj b/src/Installer/ChorusMergeModule.wixproj
index 814e34825..cb054a782 100644
--- a/src/Installer/ChorusMergeModule.wixproj
+++ b/src/Installer/ChorusMergeModule.wixproj
@@ -1,26 +1,22 @@
+
Release
x86
- 3.5
+ $(GitVersion_AssemblySemVer)
ca0d1ee4-fbea-40fb-a6bc-d9a161e1f2fa
2.0
ChorusMergeModule
Module
+ ..\..\output\$(Configuration)\
+ obj\$(Configuration)\
$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets
$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
ChorusMergeModule
-
-
- ..\..\output\$(Configuration)\
- obj\$(Configuration)\
- Debug
- True
-
-
- ..\..\output\$(Configuration)\
- obj\$(Configuration)\
+ ProductVersion=$(ProductVersion)
+ Debug;$(DefineConstants)
True
@@ -35,12 +31,18 @@
-
+
+
+
+
+ netstandard2.0
+ SIL.Chorus.ChorusMergeModule
+ $(GitVersion_NuGetVersion)
+ $([System.DateTime]::Now.ToString(yyyy))
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Installer/ChorusMergeModule.wxs b/src/Installer/ChorusMergeModule.wxs
index c27a0d0cb..8cc262412 100644
--- a/src/Installer/ChorusMergeModule.wxs
+++ b/src/Installer/ChorusMergeModule.wxs
@@ -1,14 +1,11 @@
-
-
-
-
+
diff --git a/src/Installer/NuGet.targets b/src/Installer/NuGet.targets
new file mode 100644
index 000000000..9252fffca
--- /dev/null
+++ b/src/Installer/NuGet.targets
@@ -0,0 +1,64 @@
+
+
+
+ $(MSBuildThisFileDirectory)
+
+
+ $(NuGetToolsPath)nuget.exe
+
+ "$(NuGetExePath)"
+ mono $(NuGetExePath)
+ https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+