├── src
├── Templates
│ └── v3
│ │ ├── Items
│ │ ├── TextFile
│ │ │ ├── TextFile.txt
│ │ │ ├── TextFile.ico
│ │ │ └── TextFile.vstemplate
│ │ ├── IncludeFile
│ │ │ ├── IncludeFile.wxi
│ │ │ ├── IncludeFile.ico
│ │ │ └── IncludeFile.vstemplate
│ │ ├── BlankFile
│ │ │ ├── BlankFile.ico
│ │ │ ├── BlankFile.wxs
│ │ │ └── BlankFile.vstemplate
│ │ └── LocalizationFile
│ │ │ ├── LocalizationFile.ico
│ │ │ ├── LocalizationFile.wxl
│ │ │ └── LocalizationFile.vstemplate
│ │ └── Projects
│ │ ├── CustomActionCPP
│ │ ├── CustomAction.def
│ │ ├── stdafx.cpp
│ │ ├── CustomActionCPP.ico
│ │ ├── stdafx.h
│ │ ├── CustomAction.cpp
│ │ ├── targetver.h
│ │ └── CustomActionCPP.vstemplate
│ │ ├── WixLibrary
│ │ ├── WixLibrary.ico
│ │ ├── Library.wxs
│ │ ├── WixLibrary.vstemplate
│ │ └── setuplibrary.wixproj
│ │ ├── WixProject
│ │ ├── WixProject.ico
│ │ ├── Product.wxs
│ │ ├── SetupProject.wixproj
│ │ └── WixProject.vstemplate
│ │ ├── WixBundleProject
│ │ ├── WixBundle.ico
│ │ ├── Bundle.Generated.wxs
│ │ ├── Bundle.wxs
│ │ ├── WixBundle.vstemplate
│ │ └── BundleProject.wixproj
│ │ ├── WixMergeModule
│ │ ├── WixMergeModule.ico
│ │ ├── MergeModule.wxs
│ │ ├── WixMergeModule.vstemplate
│ │ └── MergeModule.wixproj
│ │ ├── CustomActionVB
│ │ ├── CustomAction.vb
│ │ ├── AssemblyInfo.vb
│ │ ├── CustomActionVB.vstemplate
│ │ └── CustomAction.config
│ │ ├── CustomActionCS
│ │ ├── CustomAction.cs
│ │ ├── AssemblyInfo.cs
│ │ ├── CustomActionCS.vstemplate
│ │ └── CustomAction.config
│ │ └── customaction.config
├── votive.shared
│ ├── Templates
│ │ └── v3
│ │ │ ├── Items
│ │ │ ├── TextFile
│ │ │ │ ├── TextFile.txt
│ │ │ │ ├── TextFile.ico
│ │ │ │ └── TextFile.vstemplate
│ │ │ ├── IncludeFile
│ │ │ │ ├── IncludeFile.wxi
│ │ │ │ ├── IncludeFile.ico
│ │ │ │ └── IncludeFile.vstemplate
│ │ │ ├── BlankFile
│ │ │ │ ├── BlankFile.ico
│ │ │ │ ├── BlankFile.wxs
│ │ │ │ └── BlankFile.vstemplate
│ │ │ └── LocalizationFile
│ │ │ │ ├── LocalizationFile.ico
│ │ │ │ ├── LocalizationFile.wxl
│ │ │ │ └── LocalizationFile.vstemplate
│ │ │ └── Projects
│ │ │ ├── WixLibrary
│ │ │ ├── WixLibrary.ico
│ │ │ ├── Library.wxs
│ │ │ ├── WixLibrary.vstemplate
│ │ │ └── setuplibrary.wixproj
│ │ │ ├── WixProject
│ │ │ ├── WixProject.ico
│ │ │ ├── Product.wxs
│ │ │ ├── SetupProject.wixproj
│ │ │ └── WixProject.vstemplate
│ │ │ ├── WixBundleProject
│ │ │ ├── WixBundle.ico
│ │ │ ├── Bundle.Generated.wxs
│ │ │ ├── Bundle.wxs
│ │ │ ├── WixBundle.vstemplate
│ │ │ └── BundleProject.wixproj
│ │ │ ├── WixMergeModule
│ │ │ ├── WixMergeModule.ico
│ │ │ ├── MergeModule.wxs
│ │ │ ├── WixMergeModule.vstemplate
│ │ │ └── MergeModule.wixproj
│ │ │ ├── CustomActionVB
│ │ │ ├── CustomAction.vb
│ │ │ ├── AssemblyInfo.vb
│ │ │ ├── CustomActionVB.vstemplate
│ │ │ └── CustomAction.config
│ │ │ ├── CustomActionCS
│ │ │ ├── CustomAction.cs
│ │ │ ├── CustomActionCS.vstemplate
│ │ │ ├── AssemblyInfo.cs
│ │ │ └── CustomAction.config
│ │ │ └── customaction.config
│ ├── Resources
│ │ ├── Delete.png
│ │ ├── Package.ico
│ │ ├── Splash.bmp
│ │ ├── UpArrow.png
│ │ ├── imagelis.bmp
│ │ ├── DownArrow.png
│ │ ├── IncludeFile.ico
│ │ ├── ProductFile.ico
│ │ ├── ProjectFile.ico
│ │ ├── WixLibraryFile.ico
│ │ └── LocalizationFile.ico
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── CustomDictionary.xml
│ ├── WixWarningLevel.cs
│ ├── RunPostBuildEvent.cs
│ ├── WixOutputType.cs
│ ├── GlobalSuppressions.cs
│ ├── votive.shared.shproj
│ ├── ProjectBase
│ │ ├── VSMDCodeDomProvider.cs
│ │ ├── ProjectNode.Events.cs
│ │ ├── OAFolderItem.cs
│ │ ├── ConfigurationProperties.cs
│ │ ├── OAReferenceFolderItem.cs
│ │ ├── OANestedProjectItem.cs
│ │ ├── ProjectOptions.cs
│ │ ├── PropertiesEditorLauncher.cs
│ │ ├── NestedProjectBuildDependency.cs
│ │ ├── BuildPropertyPage.cs
│ │ ├── EnumDependencies.cs
│ │ ├── Tracing.cs
│ │ ├── VSShellUtilities.cs
│ │ ├── LangProj
│ │ │ ├── OAVSProjectItem.cs
│ │ │ └── OAComReference.cs
│ │ └── OANullProperty.cs
│ ├── WixVsConstants.cs
│ ├── PropertyPages
│ │ ├── WixInstallerPropertyPagePanel.cs
│ │ ├── WixPathsPropertyPagePanel.cs
│ │ ├── WixPathsPropertyPage.cs
│ │ ├── WixPropertyPagePanel.Designer.cs
│ │ ├── WixToolsSettingsPropertyPage.cs
│ │ ├── WixBuildEventsPropertyPagePanel.cs
│ │ └── WixToolsSettingsPropertyPagePanel.cs
│ ├── ProjectPropertyArgumentException.cs
│ ├── Controls
│ │ └── WixColorUserControl.Designer.cs
│ ├── IProjectSourceNode.cs
│ ├── WixDesignPropertyDescriptor.cs
│ ├── WixNonMemberDesignPropertyDescriptor.cs
│ ├── WixLocalizedCategoryAttribute.cs
│ ├── FileSearchHelperMethods.cs
│ ├── WixLibraryReferenceNodeProperties.cs
│ ├── OAWixProject.cs
│ ├── WixLocalizedControlTextAttribute.cs
│ ├── WixFileNodeProperties.cs
│ ├── WixFolderNodeProperties.cs
│ ├── WixLinkedFileNodeProperties.cs
│ ├── WixProjectConfig.cs
│ └── WixFolderNodeNonMemberProperties.cs
├── common
│ ├── WixLogo.png
│ ├── WixLogoSmall.png
│ ├── precomp.cpp
│ ├── WixDistribution.h
│ ├── WixDistribution.wxl
│ └── wixstrsafe.h
├── Icons
│ ├── IncludeFile.ico
│ ├── ProductFile.ico
│ ├── ProjectFile.ico
│ ├── WixBundle.ico
│ ├── WixLibrary.ico
│ ├── LocalizationFile.ico
│ ├── WixLibraryFile.ico
│ └── WixMergeModule.ico
├── Schemas
│ └── v3
│ │ ├── WixLogo.png
│ │ ├── redirects
│ │ ├── wix.targets
│ │ ├── wix.ca.targets
│ │ └── wix.nativeca.targets
│ │ └── source.extension.vsixmanifest
├── Votive2010
│ ├── WixLogoDev10.png
│ └── source.extension.vsixmanifest
├── Votive2012
│ ├── WixLogoDev11.png
│ └── source.extension.vsixmanifest
├── Votive2013
│ ├── WixLogoDev12.png
│ └── source.extension.vsixmanifest
├── Votive2015
│ ├── WixLogoDev14.png
│ └── source.extension.vsixmanifest
├── Votive2017
│ ├── WixLogoDev15.png
│ ├── redirects
│ │ └── v3
│ │ │ ├── wix.targets
│ │ │ ├── wix.ca.targets
│ │ │ └── wix.nativeca.targets
│ └── source.extension.vsixmanifest
├── Votive2019
│ ├── WixLogoDev16.png
│ └── source.extension.vsixmanifest
├── Votive2022
│ ├── WixLogoDev17.png
│ └── source.extension.vsixmanifest
└── src.proj
├── tools
├── signing-filter.none.txt
├── bin
│ └── NuGet.exe
├── publickey_wix.snk
├── appsettings.json
├── WixBuild.targets
├── Wix.ruleset
├── WixBuild.csproj.targets
├── Traversal.targets
└── WixBuild.csproj.props
├── .gitattributes
├── version.json
├── nuget.config
├── .github
└── workflows
│ └── cla.yml
├── README.md
└── appveyor.yml
/src/Templates/v3/Items/TextFile/TextFile.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/tools/signing-filter.none.txt:
--------------------------------------------------------------------------------
1 | sign-no-files
2 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Items/TextFile/TextFile.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/tools/bin/NuGet.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/tools/bin/NuGet.exe
--------------------------------------------------------------------------------
/src/common/WixLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/common/WixLogo.png
--------------------------------------------------------------------------------
/src/Icons/IncludeFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Icons/IncludeFile.ico
--------------------------------------------------------------------------------
/src/Icons/ProductFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Icons/ProductFile.ico
--------------------------------------------------------------------------------
/src/Icons/ProjectFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Icons/ProjectFile.ico
--------------------------------------------------------------------------------
/src/Icons/WixBundle.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Icons/WixBundle.ico
--------------------------------------------------------------------------------
/src/Icons/WixLibrary.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Icons/WixLibrary.ico
--------------------------------------------------------------------------------
/tools/publickey_wix.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/tools/publickey_wix.snk
--------------------------------------------------------------------------------
/src/Schemas/v3/WixLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Schemas/v3/WixLogo.png
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionCPP/CustomAction.def:
--------------------------------------------------------------------------------
1 | LIBRARY "$projectname$"
2 |
3 | EXPORTS
4 | CustomAction1
5 |
--------------------------------------------------------------------------------
/src/common/WixLogoSmall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/common/WixLogoSmall.png
--------------------------------------------------------------------------------
/src/Icons/LocalizationFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Icons/LocalizationFile.ico
--------------------------------------------------------------------------------
/src/Icons/WixLibraryFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Icons/WixLibraryFile.ico
--------------------------------------------------------------------------------
/src/Icons/WixMergeModule.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Icons/WixMergeModule.ico
--------------------------------------------------------------------------------
/src/Votive2010/WixLogoDev10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Votive2010/WixLogoDev10.png
--------------------------------------------------------------------------------
/src/Votive2012/WixLogoDev11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Votive2012/WixLogoDev11.png
--------------------------------------------------------------------------------
/src/Votive2013/WixLogoDev12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Votive2013/WixLogoDev12.png
--------------------------------------------------------------------------------
/src/Votive2015/WixLogoDev14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Votive2015/WixLogoDev14.png
--------------------------------------------------------------------------------
/src/Votive2017/WixLogoDev15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Votive2017/WixLogoDev15.png
--------------------------------------------------------------------------------
/src/Votive2019/WixLogoDev16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Votive2019/WixLogoDev16.png
--------------------------------------------------------------------------------
/src/Votive2022/WixLogoDev17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Votive2022/WixLogoDev17.png
--------------------------------------------------------------------------------
/src/Templates/v3/Items/IncludeFile/IncludeFile.wxi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/votive.shared/Resources/Delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Resources/Delete.png
--------------------------------------------------------------------------------
/src/votive.shared/Resources/Package.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Resources/Package.ico
--------------------------------------------------------------------------------
/src/votive.shared/Resources/Splash.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Resources/Splash.bmp
--------------------------------------------------------------------------------
/src/votive.shared/Resources/UpArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Resources/UpArrow.png
--------------------------------------------------------------------------------
/src/votive.shared/Resources/imagelis.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Resources/imagelis.bmp
--------------------------------------------------------------------------------
/src/votive.shared/Resources/DownArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Resources/DownArrow.png
--------------------------------------------------------------------------------
/src/Templates/v3/Items/TextFile/TextFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Templates/v3/Items/TextFile/TextFile.ico
--------------------------------------------------------------------------------
/src/votive.shared/Resources/IncludeFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Resources/IncludeFile.ico
--------------------------------------------------------------------------------
/src/votive.shared/Resources/ProductFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Resources/ProductFile.ico
--------------------------------------------------------------------------------
/src/votive.shared/Resources/ProjectFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Resources/ProjectFile.ico
--------------------------------------------------------------------------------
/src/Templates/v3/Items/BlankFile/BlankFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Templates/v3/Items/BlankFile/BlankFile.ico
--------------------------------------------------------------------------------
/src/votive.shared/Resources/WixLibraryFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Resources/WixLibraryFile.ico
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Items/IncludeFile/IncludeFile.wxi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/Templates/v3/Items/IncludeFile/IncludeFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Templates/v3/Items/IncludeFile/IncludeFile.ico
--------------------------------------------------------------------------------
/src/votive.shared/Resources/LocalizationFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Resources/LocalizationFile.ico
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixLibrary/WixLibrary.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Templates/v3/Projects/WixLibrary/WixLibrary.ico
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixProject/WixProject.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Templates/v3/Projects/WixProject/WixProject.ico
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionCPP/stdafx.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 |
3 | // TODO: reference any additional headers you need in STDAFX.H
4 | // and not in this file
5 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixBundleProject/WixBundle.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Templates/v3/Projects/WixBundleProject/WixBundle.ico
--------------------------------------------------------------------------------
/src/Templates/v3/Items/LocalizationFile/LocalizationFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Templates/v3/Items/LocalizationFile/LocalizationFile.ico
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixMergeModule/WixMergeModule.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Templates/v3/Projects/WixMergeModule/WixMergeModule.ico
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Items/BlankFile/BlankFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Templates/v3/Items/BlankFile/BlankFile.ico
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Items/TextFile/TextFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Templates/v3/Items/TextFile/TextFile.ico
--------------------------------------------------------------------------------
/version.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.0.0",
3 | "cloudBuild": {
4 | "setVersionVariables": true,
5 | "buildNumber": {
6 | "enabled": true
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionCPP/CustomActionCPP.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/Templates/v3/Projects/CustomActionCPP/CustomActionCPP.ico
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Items/IncludeFile/IncludeFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Templates/v3/Items/IncludeFile/IncludeFile.ico
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixLibrary/WixLibrary.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Templates/v3/Projects/WixLibrary/WixLibrary.ico
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixProject/WixProject.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Templates/v3/Projects/WixProject/WixProject.ico
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixBundleProject/WixBundle.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Templates/v3/Projects/WixBundleProject/WixBundle.ico
--------------------------------------------------------------------------------
/src/Templates/v3/Items/BlankFile/BlankFile.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Items/LocalizationFile/LocalizationFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Templates/v3/Items/LocalizationFile/LocalizationFile.ico
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixMergeModule/WixMergeModule.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wixtoolset/VisualStudioExtension/HEAD/src/votive.shared/Templates/v3/Projects/WixMergeModule/WixMergeModule.ico
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixLibrary/Library.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Items/BlankFile/BlankFile.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixLibrary/Library.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/Templates/v3/Items/LocalizationFile/LocalizationFile.wxl:
--------------------------------------------------------------------------------
1 |
2 |
3 | $loc_YOURLOCSTRING$
4 |
5 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Items/LocalizationFile/LocalizationFile.wxl:
--------------------------------------------------------------------------------
1 |
2 |
3 | $loc_YOURLOCSTRING$
4 |
5 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixBundleProject/Bundle.Generated.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixBundleProject/Bundle.Generated.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionVB/CustomAction.vb:
--------------------------------------------------------------------------------
1 | Public Class CustomActions
2 |
3 | _
4 | Public Shared Function CustomAction1(ByVal session As Session) As ActionResult
5 | session.Log("Begin CustomAction1")
6 |
7 | Return ActionResult.Success
8 | End Function
9 |
10 | End Class
11 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/CustomActionVB/CustomAction.vb:
--------------------------------------------------------------------------------
1 | Public Class CustomActions
2 |
3 | _
4 | Public Shared Function CustomAction1(ByVal session As Session) As ActionResult
5 | session.Log("Begin CustomAction1")
6 |
7 | Return ActionResult.Success
8 | End Function
9 |
10 | End Class
11 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionCPP/stdafx.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "targetver.h"
4 |
5 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
6 | // Windows Header Files:
7 | #include
8 | #include
9 | #include
10 |
11 | // WiX Header Files:
12 | #include
13 |
14 |
15 | // TODO: reference additional headers your program requires here
16 |
--------------------------------------------------------------------------------
/tools/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "SignClient": {
3 | "AzureAd": {
4 | "AADInstance": "https://login.microsoftonline.com/",
5 | "ClientId": "c248d68a-ba6f-4aa9-8a68-71fe872063f8",
6 | "TenantId": "16076fdc-fcc1-4a15-b1ca-32c9a255900e"
7 | },
8 | "Service": {
9 | "Url": "https://codesign.dotnetfoundation.org/",
10 | "ResourceId": "https://SignService/3c30251f-36f3-490b-a955-520addb85001"
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/common/precomp.cpp:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | #include "precomp.h"
4 |
5 | // warning LNK4221:
6 | // This object file does not define any previously undefined public symbols,
7 | // so it will not be used by any link operation that consumes this library.
8 | #pragma warning(disable : 4221)
9 |
--------------------------------------------------------------------------------
/src/votive.shared/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System.Reflection;
4 | using System.Runtime.InteropServices;
5 |
6 | [assembly: AssemblyTitle("Votive - WiX Toolset")]
7 | [assembly: AssemblyDescription("WiX Visual Studio Package")]
8 | [assembly: AssemblyCulture("")]
9 | [assembly: ComVisible(false)]
10 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixBundleProject/Bundle.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/nuget.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixBundleProject/Bundle.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionCS/CustomAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | $if$ ($targetframeworkversion$ == 3.5)using System.Linq;
4 | $endif$using System.Text;
5 | using Microsoft.Deployment.WindowsInstaller;
6 |
7 | namespace $safeprojectname$
8 | {
9 | public class CustomActions
10 | {
11 | [CustomAction]
12 | public static ActionResult CustomAction1(Session session)
13 | {
14 | session.Log("Begin CustomAction1");
15 |
16 | return ActionResult.Success;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/common/WixDistribution.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3 |
4 |
5 | #ifndef __WIXDISTRIBUTION_FILE_H_
6 | #define __WIXDISTRIBUTION_FILE_H_
7 |
8 | #define VER_COMPANY_NAME ".NET Foundation"
9 | #define VER_LEGAL_COPYRIGHT "Copyright (c) .NET Foundation and contributors.\240 All rights reserved."
10 | #define VER_PRODUCT_NAME "WiX Toolset Visual Studio Extension"
11 |
12 | #endif // __WIXDISTRIBUTION_FILE_H_
13 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/CustomActionCS/CustomAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | $if$ ($targetframeworkversion$ == 3.5)using System.Linq;
4 | $endif$using System.Text;
5 | using Microsoft.Deployment.WindowsInstaller;
6 |
7 | namespace $safeprojectname$
8 | {
9 | public class CustomActions
10 | {
11 | [CustomAction]
12 | public static ActionResult CustomAction1(Session session)
13 | {
14 | session.Log("Begin CustomAction1");
15 |
16 | return ActionResult.Success;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/votive.shared/CustomDictionary.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | msi
7 | msm
8 | wix
9 | wixlib
10 | wixpdb
11 | wixproj
12 | wxi
13 | wxl
14 | wxs
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixMergeModule/MergeModule.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/tools/WixBuild.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
12 |
13 |
--------------------------------------------------------------------------------
/src/Templates/v3/Items/TextFile/TextFile.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Text File
4 | A blank text file (.txt)
5 | TextFile.ico
6 | WiX
7 | 200
8 | TextFile.txt
9 | true
10 |
11 |
12 | TextFile.txt
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixMergeModule/MergeModule.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/tools/Wix.ruleset:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Items/TextFile/TextFile.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Text File
4 | A blank text file (.txt)
5 | TextFile.ico
6 | WiX
7 | 200
8 | TextFile.txt
9 | true
10 |
11 |
12 | TextFile.txt
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tools/WixBuild.csproj.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | true
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/Templates/v3/Items/BlankFile/BlankFile.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Installer File
4 | A blank Windows Installer XML file (.wxs)
5 | BlankFile.ico
6 | WiX
7 | 20
8 | File.wxs
9 | true
10 |
11 |
12 | BlankFile.wxs
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/votive.shared/WixWarningLevel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.ComponentModel;
7 |
8 | ///
9 | /// Enumeration for the warning level used during build time
10 | ///
11 | public enum WixWarningLevel
12 | {
13 | ///
14 | /// No warnings at all.
15 | ///
16 | None,
17 |
18 | ///
19 | /// Only the more important warnings are shown.
20 | ///
21 | Normal,
22 |
23 | ///
24 | /// All possible warnings.
25 | ///
26 | Pedantic,
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Templates/v3/Items/IncludeFile/IncludeFile.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Include File
4 | An empty Windows Installer XML include file (.wxi)
5 | IncludeFile.ico
6 | WiX
7 | 30
8 | Include.wxi
9 | true
10 |
11 |
12 | IncludeFile.wxi
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Items/BlankFile/BlankFile.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Installer File
4 | A blank Windows Installer XML file (.wxs)
5 | BlankFile.ico
6 | WiX
7 | 20
8 | File.wxs
9 | true
10 |
11 |
12 | BlankFile.wxs
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Items/IncludeFile/IncludeFile.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Include File
4 | An empty Windows Installer XML include file (.wxi)
5 | IncludeFile.ico
6 | WiX
7 | 30
8 | Include.wxi
9 | true
10 |
11 |
12 | IncludeFile.wxi
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/Templates/v3/Items/LocalizationFile/LocalizationFile.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Localization File
4 | An empty Windows Installer XML localization file (.wxl)
5 | LocalizationFile.ico
6 | WiX
7 | 40
8 | Strings.wxl
9 | true
10 |
11 |
12 | LocalizationFile.wxl
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/.github/workflows/cla.yml:
--------------------------------------------------------------------------------
1 | name: "CLA-Bot"
2 | on:
3 | issue_comment:
4 | types: [ created ]
5 | pull_request_target:
6 | types: [ opened, closed, synchronize ]
7 |
8 | jobs:
9 | clabot:
10 | runs-on: ubuntu-latest
11 | steps:
12 | - name: "CLA-Bot signature check"
13 | uses: cla-assistant/github-action@v2.3.0
14 | if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
15 | env:
16 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
17 | PERSONAL_ACCESS_TOKEN : ${{ secrets.CLA_BOT_ACCESS_TOKEN }}
18 | with:
19 | remote-repository-name: .github
20 | path-to-signatures: '.github/signatures/cla.json'
21 | path-to-document: 'https://github.com/wixtoolset/.github/blob/master/DNFCLA.md'
22 | allowlist: wixbot,dependabot[bot]
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WiX v3 is out of community support
2 |
3 | See https://www.firegiant.com/wixtoolset/ for the latest information about the WiX Toolset.
4 |
5 |
6 | ### WiX v3 - Visual Studio Extension (aka: Votive)
7 |
8 | This repository contains the code for the WiX v3 - Visual Studio Extension. To install
9 | the extension, use the Extension Manager inside Visual Studio or visit the
10 | [Visual Studio Marketplace][marketplace].
11 |
12 | **Note:** This Visual Studio Extension DOES NOT support WiX v4 based projects. To load
13 | WiX v4 projects in Visual Studio, install [HeatWave for VS2022][heatwave] (or [for VS2019][heatwave16]).
14 |
15 |
16 | [marketplace]: https://marketplace.visualstudio.com/search?term=wix%20toolset&target=VS&sortBy=Relevance
17 | [heatwave]: https://marketplace.visualstudio.com/items?itemName=FireGiant.FireGiantHeatWaveDev17
18 | [heatwave16]: https://marketplace.visualstudio.com/items?itemName=FireGiant.FireGiantHeatWaveDev16
19 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Items/LocalizationFile/LocalizationFile.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Localization File
4 | An empty Windows Installer XML localization file (.wxl)
5 | LocalizationFile.ico
6 | WiX
7 | 40
8 | Strings.wxl
9 | true
10 |
11 |
12 | LocalizationFile.wxl
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/votive.shared/RunPostBuildEvent.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 |
7 | ///
8 | /// Enumerates the values of the RunPostBuildEvent MSBuild property.
9 | ///
10 | public enum RunPostBuildEvent
11 | {
12 | ///
13 | /// The post-build event is always run.
14 | ///
15 | Always,
16 |
17 | ///
18 | /// The post-build event is only run when the build succeeds.
19 | ///
20 | OnBuildSuccess,
21 |
22 | ///
23 | /// The post-build event is only run if the project's output is updated.
24 | ///
25 | OnOutputUpdated,
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionCPP/CustomAction.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 |
3 |
4 | UINT __stdcall CustomAction1(
5 | MSIHANDLE hInstall
6 | )
7 | {
8 | HRESULT hr = S_OK;
9 | UINT er = ERROR_SUCCESS;
10 |
11 | hr = WcaInitialize(hInstall, "CustomAction1");
12 | ExitOnFailure(hr, "Failed to initialize");
13 |
14 | WcaLog(LOGMSG_STANDARD, "Initialized.");
15 |
16 | // TODO: Add your custom action code here.
17 |
18 |
19 | LExit:
20 | er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE;
21 | return WcaFinalize(er);
22 | }
23 |
24 |
25 | // DllMain - Initialize and cleanup WiX custom action utils.
26 | extern "C" BOOL WINAPI DllMain(
27 | __in HINSTANCE hInst,
28 | __in ULONG ulReason,
29 | __in LPVOID
30 | )
31 | {
32 | switch(ulReason)
33 | {
34 | case DLL_PROCESS_ATTACH:
35 | WcaGlobalInitialize(hInst);
36 | break;
37 |
38 | case DLL_PROCESS_DETACH:
39 | WcaGlobalFinalize();
40 | break;
41 | }
42 |
43 | return TRUE;
44 | }
45 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionCPP/targetver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #ifndef WINVER // Specifies that the minimum required platform is Windows XP.
4 | #define WINVER 0x0501 // Change this to the appropriate value to target other versions of Windows.
5 | #endif
6 |
7 | #ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows XP.
8 | #define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows.
9 | #endif
10 |
11 | #ifndef _WIN32_IE // Specifies that the minimum required platform is Internet Explorer 6.0 SP3.
12 | #define _WIN32_IE 0x0603 // Change this to the appropriate value to target other versions of IE.
13 | #endif
14 |
15 | #ifndef _WIN32_MSI // Specifies that the minimum required MSI version is MSI 3.1
16 | #define _WIN32_MSI 310 // Change this to the appropriate value to target other versions of MSI.
17 | #endif
18 |
--------------------------------------------------------------------------------
/src/common/WixDistribution.wxl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | .NET Foundation
7 | Copyright (c) .NET Foundation and contributors. All rights reserved.
8 | WiX Toolset Visual Studio Extension
9 | wixtoolset.org
10 | WiX Toolset
11 | https://wixtoolset.org
12 | https://wixtoolset.org/releases/feed/v3.11
13 |
14 |
--------------------------------------------------------------------------------
/src/Schemas/v3/redirects/wix.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | $(MSBuildProgramFiles32)\MSBuild\Microsoft\WiX\v3.x\
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/Schemas/v3/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | WiX Toolset v3 Schemas for Visual Studio
6 | Visual Studio integraion for the WiX Toolset v3 schemas
7 | https://wixtoolset.org/
8 | WixLogo.png
9 | WixLogo.png
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/Votive2017/redirects/v3/wix.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | $(MSBuildProgramFiles32)\MSBuild\Microsoft\WiX\v3.x\
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/Schemas/v3/redirects/wix.ca.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | $(MSBuildProgramFiles32)\MSBuild\Microsoft\WiX\v3.x\
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/Votive2017/redirects/v3/wix.ca.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | $(MSBuildProgramFiles32)\MSBuild\Microsoft\WiX\v3.x\
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/common/wixstrsafe.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3 |
4 |
5 | #pragma warning(push)
6 | #pragma warning(disable: 6001 6011 6029 6031 6053 6054 6057 6059 6063 6064 6066 6067 6200 6201 6202 6203 6204 6209 6211 6214 6215 6216 6217 6219 6220 6221 6225 6226 6230 6235 6236 6237 6239 6240 6242 6244 6246 6248 6250 6255 6258 6259 6260 6262 6263 6268 6269 6270 6271 6272 6273 6274 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6302 6303 6305 6306 6308 6309 6310 6312 6313 6314 6315 6316 6317 6318 6319 6320 6322 6323 6324 6326 6327 6328 6329 6331 6332 6333 6334 6335 6336 6381 6383 6384 6385 6386 6387 6388 6400 6401 6500 6501 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6521 6522 6523 6525 6526 6530 6535 6540 6990 6991 6992 6993 6994 6995)
7 | #include
8 | #pragma warning(pop)
9 |
--------------------------------------------------------------------------------
/src/src.proj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/votive.shared/WixOutputType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.ComponentModel;
7 |
8 | ///
9 | /// Enumeration for the various output types for a Wix project.
10 | ///
11 | public enum WixOutputType
12 | {
13 | ///
14 | /// Wix project that builds an MSI file.
15 | ///
16 | Package,
17 |
18 | ///
19 | /// Wix project that builds an MSM file.
20 | ///
21 | Module,
22 |
23 | ///
24 | /// Wix project that builds a wixlib file.
25 | ///
26 | Library,
27 |
28 | ///
29 | /// Wix project that builds a exe file.
30 | ///
31 | Bundle,
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/votive.shared/GlobalSuppressions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System.Diagnostics.CodeAnalysis;
4 |
5 | [assembly: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "WixToolset.VisualStudioExtension.WixPackageSettings+MachineSettingEnum`1")]
6 |
7 | [assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "WixToolset.VisualStudioExtension.Build.Tasks", Justification = "Ignoring this warning...we want this namespace, but don't have enough classes to go in it right now to satisfy the rule.")]
8 | [assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "WixToolset.VisualStudioExtension.Controls")]
9 | [assembly: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "votive")]
10 |
--------------------------------------------------------------------------------
/src/Schemas/v3/redirects/wix.nativeca.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | $(MSBuildProgramFiles32)\MSBuild\Microsoft\WiX\v3.x\
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/Votive2017/redirects/v3/wix.nativeca.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | $(MSBuildProgramFiles32)\MSBuild\Microsoft\WiX\v3.x\
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/votive.shared/votive.shared.shproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 72a14880-ec19-43b4-a4f0-dc9ddae2c763
5 | 14.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/VSMDCodeDomProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Diagnostics;
6 | using System.Globalization;
7 | using System.Runtime.InteropServices;
8 | using System.CodeDom.Compiler;
9 | using Microsoft.VisualStudio.Designer.Interfaces;
10 | using IOleServiceProvider = Microsoft.VisualStudio.OLE.Interop.IServiceProvider;
11 | using IServiceProvider = System.IServiceProvider;
12 |
13 | namespace Microsoft.VisualStudio.Package
14 | {
15 | internal class VSMDCodeDomProvider : IVSMDCodeDomProvider
16 | {
17 | private CodeDomProvider provider;
18 | public VSMDCodeDomProvider(CodeDomProvider provider)
19 | {
20 | if (provider == null)
21 | throw new ArgumentNullException("provider");
22 | this.provider = provider;
23 | }
24 |
25 | #region IVSMDCodeDomProvider Members
26 | object IVSMDCodeDomProvider.CodeDomProvider
27 | {
28 | get { return provider; }
29 | }
30 | #endregion
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixProject/Product.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixProject/Product.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/ProjectNode.Events.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace Microsoft.VisualStudio.Package
4 | {
5 | using System;
6 | using System.Diagnostics;
7 | using Microsoft.VisualStudio.Shell.Interop;
8 |
9 | public partial class ProjectNode
10 | {
11 | #region fields
12 | private EventHandler projectPropertiesListeners;
13 | #endregion
14 |
15 | #region events
16 | public event EventHandler OnProjectPropertyChanged
17 | {
18 | add { projectPropertiesListeners += value; }
19 | remove { projectPropertiesListeners -= value; }
20 | }
21 | #endregion
22 |
23 | #region methods
24 | protected void RaiseProjectPropertyChanged(string propertyName, string oldValue, string newValue)
25 | {
26 | if (null != projectPropertiesListeners)
27 | {
28 | projectPropertiesListeners(this, new ProjectPropertyChangedArgs(propertyName, oldValue, newValue));
29 | }
30 | }
31 | #endregion
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/src/votive.shared/WixVsConstants.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 |
7 | ///
8 | /// Contains constants for VS integration related APIs
9 | ///
10 | //// Keep these in alphabetical order for easy referencing.
11 | internal static class WixVsConstants
12 | {
13 | // Command id and command set guid for Generate Code Metrics menu command. we are using these
14 | // private variables because we could not find such ids in the API. We should remove these variables
15 | // and use the API whenever available.
16 | public const uint CommandExploreFolderInWindows = 1635;
17 | public const uint CommandGenerateCodeMetricsAnalyzeMenu = 1027;
18 | public const uint CommandGenerateCodeMetricsContextMenu = 768;
19 | public const uint CommandRefreshToolbox = 4137;
20 |
21 | public static readonly Guid GuidGenerateCodeMetrics = new Guid("{79989dd6-4c13-4d10-9872-73538668d037}");
22 | public static readonly Guid GuidRefreshToolbox = new Guid("C90DA239-5787-47F4-8477-14580555AD76");
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/Votive2010/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | WiX v3 - Visual Studio 2010 Extension
5 | WiX Toolset
6 | |Votive2010;GetBuildVersion|
7 | 1033
8 | false
9 | Visual Studio integration for the WiX v3 Toolset - the most powerful set of tools available to create your Windows installation experience.
10 | https://wixtoolset.org/
11 | WixLogoDev10.png
12 | WixLogoDev10.png
13 |
14 |
15 | Pro
16 |
17 |
18 |
19 |
20 |
21 |
22 | |votive;PkgdefProjectOutputGroup|
23 | |Votive|
24 | ProjectTemplates
25 | ItemTemplates
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/Votive2012/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | WiX v3 - Visual Studio 2012 Extension
5 | WiX Toolset
6 | |Votive2012;GetBuildVersion|
7 | 1033
8 | false
9 | Visual Studio integration for the WiX v3 Toolset - the most powerful set of tools available to create your Windows installation experience.
10 | https://wixtoolset.org/
11 | WixLogoDev11.png
12 | WixLogoDev11.png
13 |
14 |
15 | Pro
16 |
17 |
18 |
19 |
20 |
21 |
22 | |votive;PkgdefProjectOutputGroup|
23 | |Votive|
24 | ProjectTemplates
25 | ItemTemplates
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/Votive2013/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | WiX v3 - Visual Studio 2013 Extension
5 | WiX Toolset
6 | |Votive2013;GetBuildVersion|
7 | 1033
8 | false
9 | Visual Studio integration for the WiX v3 Toolset - the most powerful set of tools available to create your Windows installation experience.
10 | https://wixtoolset.org/
11 | WixLogoDev12.png
12 | WixLogoDev12.png
13 |
14 |
15 | Pro
16 |
17 |
18 |
19 |
20 |
21 |
22 | |votive;PkgdefProjectOutputGroup|
23 | |Votive|
24 | ProjectTemplates
25 | ItemTemplates
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionVB/AssemblyInfo.vb:
--------------------------------------------------------------------------------
1 | Imports System
2 | Imports System.Reflection
3 | Imports System.Runtime.InteropServices
4 |
5 | ' General Information about an assembly is controlled through the following
6 | ' set of attributes. Change these attribute values to modify the information
7 | ' associated with an assembly.
8 |
9 | ' Review the values of the assembly attributes
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | 'The following GUID is for the ID of the typelib if this project is exposed to COM
21 |
22 |
23 | ' Version information for an assembly consists of the following four values:
24 | '
25 | ' Major Version
26 | ' Minor Version
27 | ' Build Number
28 | ' Revision
29 | '
30 | ' You can specify all the values or you can default the Build and Revision Numbers
31 | ' by using the '*' as shown below:
32 | '
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/CustomActionVB/AssemblyInfo.vb:
--------------------------------------------------------------------------------
1 | Imports System
2 | Imports System.Reflection
3 | Imports System.Runtime.InteropServices
4 |
5 | ' General Information about an assembly is controlled through the following
6 | ' set of attributes. Change these attribute values to modify the information
7 | ' associated with an assembly.
8 |
9 | ' Review the values of the assembly attributes
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | 'The following GUID is for the ID of the typelib if this project is exposed to COM
21 |
22 |
23 | ' Version information for an assembly consists of the following four values:
24 | '
25 | ' Major Version
26 | ' Minor Version
27 | ' Build Number
28 | ' Revision
29 | '
30 | ' You can specify all the values or you can default the Build and Revision Numbers
31 | ' by using the '*' as shown below:
32 | '
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/Votive2015/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | WiX v3 - Visual Studio 2015 Extension
5 | WiX Toolset
6 | |Votive2015;GetBuildVersion|
7 | 1033
8 | false
9 | Visual Studio integration for the WiX v3 Toolset - the most powerful set of tools available to create your Windows installation experience.
10 | https://wixtoolset.org/
11 | WixLogoDev14.png
12 | WixLogoDev14.png
13 |
14 |
15 | Pro
16 | Community
17 |
18 |
19 |
20 |
21 |
22 |
23 | |votive;PkgdefProjectOutputGroup|
24 | |Votive|
25 | ProjectTemplates
26 | ItemTemplates
27 |
28 |
29 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/CustomActionCS/CustomActionCS.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | C# Custom Action Project
5 | A project for creating an MSI custom action
6 |
7 | WiX
8 | Microsoft.Deployment.WindowsInstaller.CustomActionCS
9 | 2.0
10 | 60
11 | 1
12 | true
13 | CustomAction
14 | true
15 |
16 |
17 |
18 | CustomAction.cs
19 | AssemblyInfo.cs
20 | CustomAction.config
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/CustomActionVB/CustomActionVB.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | VB Custom Action Project
5 | A project for creating an MSI custom action
6 |
7 | WiX
8 | Microsoft.Deployment.WindowsInstaller.CustomActionVB
9 | 2.0
10 | 70
11 | 1
12 | true
13 | CustomAction
14 | true
15 |
16 |
17 |
18 | CustomAction.vb
19 | AssemblyInfo.vb
20 | CustomAction.config
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/votive.shared/PropertyPages/WixInstallerPropertyPagePanel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension.PropertyPages
4 | {
5 | using System;
6 | using System.Diagnostics;
7 | using System.Windows.Forms;
8 |
9 | ///
10 | /// Property page contents for the Wix Project Build Settings page.
11 | ///
12 | internal partial class WixInstallerPropertyPagePanel : WixPropertyPagePanel
13 | {
14 | // =========================================================================================
15 | // Constructors
16 | // =========================================================================================
17 |
18 | ///
19 | /// Initializes a new instance of the class.
20 | ///
21 | /// The parent property page to which this is bound.
22 | public WixInstallerPropertyPagePanel(WixPropertyPage parentPropertyPage)
23 | : base(parentPropertyPage)
24 | {
25 | this.InitializeComponent();
26 |
27 | this.outputNameTextBox.Tag = WixProjectFileConstants.OutputName;
28 | this.comboOutputType.Tag = WixProjectFileConstants.OutputType;
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionCS/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("$projectname$")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyCompany("$registeredorganization$")]
11 | [assembly: AssemblyProduct("$projectname$")]
12 | [assembly: AssemblyCopyright("Copyright © $registeredorganization$ $year$")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("$guid1$")]
23 |
24 | // Version information for an assembly consists of the following four values:
25 | //
26 | // Major Version
27 | // Minor Version
28 | // Build Number
29 | // Revision
30 | //
31 | // You can specify all the values or you can default the Build and Revision Numbers
32 | // by using the '*' as shown below:
33 | // [assembly: AssemblyVersion("1.0.*")]
34 | [assembly: AssemblyVersion("1.0.0.0")]
35 | [assembly: AssemblyFileVersion("1.0.0.0")]
36 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/CustomActionCS/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("$projectname$")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyCompany("$registeredorganization$")]
11 | [assembly: AssemblyProduct("$projectname$")]
12 | [assembly: AssemblyCopyright("Copyright © $registeredorganization$ $year$")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("$guid1$")]
23 |
24 | // Version information for an assembly consists of the following four values:
25 | //
26 | // Major Version
27 | // Minor Version
28 | // Build Number
29 | // Revision
30 | //
31 | // You can specify all the values or you can default the Build and Revision Numbers
32 | // by using the '*' as shown below:
33 | // [assembly: AssemblyVersion("1.0.*")]
34 | [assembly: AssemblyVersion("1.0.0.0")]
35 | [assembly: AssemblyFileVersion("1.0.0.0")]
36 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixLibrary/WixLibrary.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Setup Library Project
4 | A project for creating a wixlib library
5 | WixLibrary.ico
6 | WiX
7 | 40
8 | 1
9 | true
10 | SetupLibrary
11 | true
12 |
13 |
14 |
15 | Library.wxs
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionCS/CustomActionCS.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | C# Custom Action Project for WiX v3
5 | A project for creating an MSI custom action using WiX Toolset v3
6 |
7 |
8 |
9 |
10 |
11 | WiX
12 | Microsoft.Deployment.WindowsInstaller.CustomActionCS
13 | 2.0
14 | 60
15 | 1
16 | true
17 | CustomAction
18 | true
19 |
20 |
21 |
22 | CustomAction.cs
23 | AssemblyInfo.cs
24 | CustomAction.config
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionVB/CustomActionVB.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | VB Custom Action Project for WiX v3
5 | A project for creating an MSI custom action using WiX Toolset v3
6 |
7 |
8 |
9 |
10 |
11 | WiX
12 | Microsoft.Deployment.WindowsInstaller.CustomActionVB
13 | 2.0
14 | 70
15 | 1
16 | true
17 | CustomAction
18 | true
19 |
20 |
21 |
22 | CustomAction.vb
23 | AssemblyInfo.vb
24 | CustomAction.config
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/OAFolderItem.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System;
4 | using Microsoft.VisualStudio.Shell.Interop;
5 | using Microsoft.VisualStudio.Shell;
6 | using System.Runtime.InteropServices;
7 | using System.Collections.Generic;
8 | using System.Collections;
9 | using System.Diagnostics;
10 | using System.IO;
11 | using IServiceProvider = System.IServiceProvider;
12 | using Microsoft.VisualStudio.OLE.Interop;
13 | using EnvDTE;
14 | using System.Diagnostics.CodeAnalysis;
15 |
16 | namespace Microsoft.VisualStudio.Package.Automation
17 | {
18 | ///
19 | /// Represents an automation object for a folder in a project
20 | ///
21 | [SuppressMessage("Microsoft.Interoperability", "CA1405:ComVisibleTypeBaseTypesShouldBeComVisible")]
22 | [ComVisible(true), CLSCompliant(false)]
23 | public class OAFolderItem : OAProjectItem
24 | {
25 | #region ctors
26 | public OAFolderItem(OAProject project, FolderNode node)
27 | : base(project, node)
28 | {
29 | }
30 |
31 | #endregion
32 |
33 | #region overridden methods
34 | public override ProjectItems Collection
35 | {
36 | get
37 | {
38 | ProjectItems items = new OAProjectItems(this.Project, this.Node);
39 | return items;
40 | }
41 | }
42 |
43 | public override ProjectItems ProjectItems
44 | {
45 | get
46 | {
47 | return this.Collection;
48 | }
49 | }
50 | #endregion
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionCPP/CustomActionCPP.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | C++ Custom Action Project for WiX v3
5 | A project for creating an MSI custom action using WiX Toolset v3
6 | CustomActionCPP.ico
7 |
8 |
9 |
10 |
11 | WiX
12 | Microsoft.Deployment.WindowsInstaller.CustomActionCPP
13 | 2.0
14 | 80
15 | 1
16 | true
17 | CustomAction
18 | true
19 |
20 |
21 |
22 | CustomAction.cpp
23 | CustomAction.def
24 | stdafx.cpp
25 | stdafx.h
26 | targetver.h
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/customaction.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/votive.shared/PropertyPages/WixPathsPropertyPagePanel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension.PropertyPages
4 | {
5 | using System;
6 | using System.Collections.Generic;
7 | using System.ComponentModel;
8 | using System.Drawing;
9 | using System.Text;
10 | using System.Windows.Forms;
11 |
12 | ///
13 | /// Property page contents for the Paths property page
14 | ///
15 | ///
16 | internal partial class WixPathsPropertyPagePanel : WixPropertyPagePanel
17 | {
18 | // =========================================================================================
19 | // Constructors
20 | // =========================================================================================
21 |
22 | ///
23 | /// Initilizes a new instance of the WixPathsPropertyPagePanel class
24 | ///
25 | /// The parent property page to which this is bound
26 | public WixPathsPropertyPagePanel(WixPropertyPage parentPropertyPage)
27 | : base(parentPropertyPage)
28 | {
29 | this.InitializeComponent();
30 |
31 | this.referencePathsFoldersSelector.Tag = WixProjectFileConstants.ReferencePaths;
32 | this.includePathsFolderSelector.Tag = WixProjectFileConstants.IncludeSearchPaths;
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionCS/CustomAction.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/CustomActionVB/CustomAction.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/customaction.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/CustomActionCS/CustomAction.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/CustomActionVB/CustomAction.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectPropertyArgumentException.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.Runtime.Serialization;
7 | using System.ComponentModel;
8 |
9 | ///
10 | /// Exception thrown when an invalid property is entered on the project property pages
11 | ///
12 | [Serializable]
13 | internal class ProjectPropertyArgumentException : ArgumentException
14 | {
15 | // =========================================================================================
16 | // Constructors
17 | // =========================================================================================
18 |
19 | ///
20 | /// Constructor for the ProjectPropertyArgumentException
21 | ///
22 | /// Error message associated with the exception
23 | public ProjectPropertyArgumentException(string message)
24 | : base(message)
25 | {
26 | }
27 |
28 | ///
29 | /// Creates a new deserialized exception instance.
30 | ///
31 | /// Serialization info.
32 | /// Streaming context.
33 | protected ProjectPropertyArgumentException(SerializationInfo info, StreamingContext context)
34 | : base(info, context)
35 | {
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixLibrary/WixLibrary.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Setup Library Project for WiX v3
4 | A project for creating a wixlib library using WiX Toolset v3
5 | WixLibrary.ico
6 |
7 |
8 |
9 |
10 | WiX
11 | 40
12 | 1
13 | true
14 | SetupLibrary
15 | true
16 |
17 |
18 |
19 | Library.wxs
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/votive.shared/Controls/WixColorUserControl.Designer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension.Controls
4 | {
5 | partial class WixColorUserControl
6 | {
7 | ///
8 | /// Required designer variable.
9 | ///
10 | private System.ComponentModel.IContainer components = null;
11 |
12 | ///
13 | /// Clean up any resources being used.
14 | ///
15 | /// true if managed resources should be disposed; otherwise, false.
16 | protected override void Dispose(bool disposing)
17 | {
18 | if (disposing && (components != null))
19 | {
20 | components.Dispose();
21 | }
22 | base.Dispose(disposing);
23 | }
24 |
25 | #region Component Designer generated code
26 |
27 | ///
28 | /// Required method for Designer support - do not modify
29 | /// the contents of this method with the code editor.
30 | ///
31 | private void InitializeComponent()
32 | {
33 | this.SuspendLayout();
34 | //
35 | // WixColorUserControl
36 | //
37 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
38 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
39 | this.Name = "WixColorUserControl";
40 | this.ResumeLayout(false);
41 |
42 | }
43 |
44 | #endregion
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/votive.shared/IProjectSourceNode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System.Diagnostics.CodeAnalysis;
6 |
7 | ///
8 | /// This interface provides the ability to identify the items which have the cability of including / excluding
9 | /// themselves to / from the project system. It also tells if the item is a member of the project or not.
10 | ///
11 | public interface IProjectSourceNode
12 | {
13 | ///
14 | /// Gets if the item is not a member of the project.
15 | ///
16 | [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "NonMember")]
17 | bool IsNonMemberItem
18 | {
19 | get;
20 | }
21 |
22 | ///
23 | /// Exclude the item from the project system.
24 | ///
25 | /// Returns success or failure code.
26 | int ExcludeFromProject();
27 |
28 | ///
29 | /// Include the item into the project system.
30 | ///
31 | /// Returns success or failure code.
32 | int IncludeInProject();
33 |
34 | ///
35 | /// Include the item into the project system recursively.
36 | ///
37 | /// Flag that indicates if the inclusion should be recursive or not.
38 | /// Returns success or failure code.
39 | int IncludeInProject(bool recursive);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/tools/Traversal.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | true
11 |
12 |
13 |
14 |
15 | $(BuildInParallel)
16 |
17 |
18 |
19 |
21 |
22 |
23 |
24 |
25 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | <_NonParallelProjects Include="@(ProjectReference)" Condition=" '%(BuildInParallel)'!='true' " />
36 | <_ParallelProjects Include="@(ProjectReference)" Condition=" '%(BuildInParallel)'=='true' " />
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixMergeModule/WixMergeModule.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Merge Module Project
4 | A project for creating a Windows Installer XML based MSM file
5 | WixMergeModule.ico
6 | WiX
7 | 30
8 | 1
9 | true
10 | MergeModule
11 | true
12 |
13 |
14 |
15 | MergeModule.wxs
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixBundleProject/WixBundle.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Bootstrapper Project
4 | A project for creating a Windows Installer XML based EXE setup layout
5 | WixBundle.ico
6 | WiX
7 | 50
8 | 1
9 | true
10 | Bootstrapper
11 | true
12 | false
13 |
14 |
15 |
16 | Bundle.wxs
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/votive.shared/PropertyPages/WixPathsPropertyPage.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension.PropertyPages
4 | {
5 | using System;
6 | using System.Collections.Generic;
7 | using System.Runtime.InteropServices;
8 | using System.Text;
9 |
10 | ///
11 | /// Property page for the include and reference paths
12 | ///
13 | [ComVisible(true)]
14 | [Guid("3ED6B659-F2FA-4252-8B3A-3736B04BFC4D")]
15 | internal class WixPathsPropertyPage : WixPropertyPage
16 | {
17 | // =========================================================================================
18 | // Constructors
19 | // =========================================================================================
20 |
21 | ///
22 | /// Initializes a new instance of WixPathsPropertyPage
23 | ///
24 | public WixPathsPropertyPage()
25 | {
26 | this.PageName = WixStrings.WixPathsPropertyPageName;
27 | }
28 |
29 | // =========================================================================================
30 | // Methods
31 | // =========================================================================================
32 |
33 | ///
34 | /// Creates the controls that constitute the property page. This should be safe to re-entrancy.
35 | ///
36 | /// The newly created main control that hosts the property page.
37 | protected override WixPropertyPagePanel CreatePropertyPagePanel()
38 | {
39 | return new WixPathsPropertyPagePanel(this);
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/votive.shared/PropertyPages/WixPropertyPagePanel.Designer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension.PropertyPages
4 | {
5 | partial class WixPropertyPagePanel
6 | {
7 | ///
8 | /// Required designer variable.
9 | ///
10 | private System.ComponentModel.IContainer components = null;
11 |
12 | ///
13 | /// Clean up any resources being used.
14 | ///
15 | /// true if managed resources should be disposed; otherwise, false.
16 | protected override void Dispose(bool disposing)
17 | {
18 | if (disposing && (components != null))
19 | {
20 | components.Dispose();
21 | }
22 | base.Dispose(disposing);
23 | }
24 |
25 | #region Component Designer generated code
26 |
27 | ///
28 | /// Required method for Designer support - do not modify
29 | /// the contents of this method with the code editor.
30 | ///
31 | private void InitializeComponent()
32 | {
33 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WixPropertyPagePanel));
34 | this.SuspendLayout();
35 | //
36 | // WixPropertyPagePanel
37 | //
38 | resources.ApplyResources(this, "$this");
39 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
40 | this.Name = "WixPropertyPagePanel";
41 | this.ResumeLayout(false);
42 |
43 | }
44 |
45 | #endregion
46 |
47 |
48 |
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/votive.shared/WixDesignPropertyDescriptor.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.ComponentModel;
7 | using Microsoft.VisualStudio.Package;
8 |
9 | ///
10 | /// Subclasses to allow for non-bolded text in the property grid.
11 | ///
12 | public class WixDesignPropertyDescriptor : DesignPropertyDescriptor
13 | {
14 | // =========================================================================================
15 | // Constructors
16 | // =========================================================================================
17 |
18 | ///
19 | /// Initializes a new instance of the class.
20 | ///
21 | /// The to wrap.
22 | public WixDesignPropertyDescriptor(PropertyDescriptor propertyDescriptor)
23 | : base(propertyDescriptor)
24 | {
25 | }
26 |
27 | // =========================================================================================
28 | // Methods
29 | // =========================================================================================
30 |
31 | ///
32 | /// By returning false here, we're always going to show the property as non-bolded.
33 | ///
34 | /// The component to check.
35 | /// Always returns false.
36 | public override bool ShouldSerializeValue(object component)
37 | {
38 | return false;
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/votive.shared/PropertyPages/WixToolsSettingsPropertyPage.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension.PropertyPages
4 | {
5 | using System;
6 | using System.Collections.Generic;
7 | using System.Runtime.InteropServices;
8 | using System.Text;
9 |
10 | ///
11 | /// Property page for the compiler/linker/librarian command line settings
12 | ///
13 | [ComVisible(true)]
14 | [Guid("37DA98B6-C5F4-4ce6-867F-553EBE590ABE")]
15 | internal class WixToolsSettingsPropertyPage : WixPropertyPage
16 | {
17 | // =========================================================================================
18 | // Constructors
19 | // =========================================================================================
20 |
21 | ///
22 | /// Initializes a new instance of WixToolsSettingsPropertyPage class
23 | ///
24 | public WixToolsSettingsPropertyPage()
25 | {
26 | this.PageName = WixStrings.WixToolsSettingsPropertyPageName;
27 | }
28 |
29 | // =========================================================================================
30 | // Methods
31 | // =========================================================================================
32 |
33 | ///
34 | /// Creates the controls that constitute the property page. This should be safe to re-entrancy.
35 | ///
36 | /// The newly created main control that hosts the property page.
37 | protected override WixPropertyPagePanel CreatePropertyPagePanel()
38 | {
39 | return new WixToolsSettingsPropertyPagePanel(this);
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixMergeModule/WixMergeModule.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Merge Module Project for WiX v3
4 | A project for creating a WiX based MSM file using WiX Toolset v3
5 | WixMergeModule.ico
6 |
7 |
8 |
9 |
10 | WiX
11 | 30
12 | 1
13 | true
14 | MergeModule
15 | true
16 |
17 |
18 |
19 | MergeModule.wxs
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixLibrary/setuplibrary.wixproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x86
6 | 3.10
7 | $guid1$
8 | 2.0
9 | $safeprojectname$
10 | Library
11 |
12 |
13 | bin\$(Configuration)\
14 | obj\$(Configuration)\
15 | Debug
16 |
17 |
18 | bin\$(Configuration)\
19 | obj\$(Configuration)\
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
37 |
38 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixProject/SetupProject.wixproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x86
6 | 3.10
7 | $guid1$
8 | 2.0
9 | $safeprojectname$
10 | Package
11 |
12 |
13 | bin\$(Configuration)\
14 | obj\$(Configuration)\
15 | Debug
16 |
17 |
18 | bin\$(Configuration)\
19 | obj\$(Configuration)\
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
37 |
38 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixMergeModule/MergeModule.wixproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x86
6 | 3.10
7 | $guid1$
8 | 2.0
9 | $safeprojectname$
10 | Module
11 |
12 |
13 | bin\$(Configuration)\
14 | obj\$(Configuration)\
15 | Debug
16 |
17 |
18 | bin\$(Configuration)\
19 | obj\$(Configuration)\
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
37 |
38 |
--------------------------------------------------------------------------------
/src/Votive2017/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | WiX v3 - Visual Studio 2017 Extension
6 | Visual Studio integration for the WiX v3 Toolset - the most powerful set of tools available to create your Windows installation experience.
7 | https://wixtoolset.org/
8 | WixLogoDev15.png
9 | WixLogoDev15.png
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/Votive2019/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | WiX v3 - Visual Studio 2019 Extension
6 | Visual Studio integration for the WiX v3 Toolset - the most powerful set of tools available to create your Windows installation experience.
7 | https://wixtoolset.org/
8 | WixLogoDev16.png
9 | WixLogoDev16.png
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/Votive2022/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | WiX v3 - Visual Studio 2022 Extension
6 | Visual Studio integration for the WiX v3 Toolset - the most powerful set of tools available to create your Windows installation experience.
7 | https://wixtoolset.org/
8 | WixLogoDev17.png
9 | WixLogoDev17.png
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixLibrary/setuplibrary.wixproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Debug
4 | x86
5 | 3.10
6 | $guid1$
7 | 2.0
8 | $safeprojectname$
9 | Library
10 | $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets
11 | $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
12 |
13 |
14 | bin\$(Configuration)\
15 | obj\$(Configuration)\
16 | Debug
17 |
18 |
19 | bin\$(Configuration)\
20 | obj\$(Configuration)\
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
37 |
38 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixProject/SetupProject.wixproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Debug
4 | x86
5 | 3.10
6 | $guid1$
7 | 2.0
8 | $safeprojectname$
9 | Package
10 | $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets
11 | $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
12 |
13 |
14 | bin\$(Configuration)\
15 | obj\$(Configuration)\
16 | Debug
17 |
18 |
19 | bin\$(Configuration)\
20 | obj\$(Configuration)\
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
37 |
38 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixMergeModule/MergeModule.wixproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Debug
4 | x86
5 | 3.10
6 | $guid1$
7 | 2.0
8 | $safeprojectname$
9 | Module
10 | $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets
11 | $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
12 |
13 |
14 | bin\$(Configuration)\
15 | obj\$(Configuration)\
16 | Debug
17 |
18 |
19 | bin\$(Configuration)\
20 | obj\$(Configuration)\
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
37 |
38 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixBundleProject/WixBundle.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Bootstrapper Project for WiX v3
4 | A project for creating a WiX based EXE setup layout using WiX Toolset v3
5 | WixBundle.ico
6 |
7 |
8 |
9 |
10 |
11 | WiX
12 | 50
13 | 1
14 | true
15 | Bootstrapper
16 | true
17 | false
18 |
19 |
20 |
21 | Bundle.wxs
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/ConfigurationProperties.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using Microsoft.VisualStudio.Shell.Interop;
4 | using System;
5 | using System.Runtime.InteropServices;
6 | using Microsoft.VisualStudio.OLE.Interop;
7 | using Microsoft.VisualStudio.Shell;
8 | using System.Diagnostics;
9 | using System.Globalization;
10 | using System.Collections;
11 | using System.IO;
12 | using MSBuild = Microsoft.Build.Evaluation;
13 | using System.Collections.Generic;
14 |
15 | namespace Microsoft.VisualStudio.Package
16 | {
17 | ///
18 | /// Defines the config dependent properties exposed through automation
19 | ///
20 | [ComVisible(true)]
21 | [Guid("21f73a8f-91d7-4085-9d4f-c48ee235ee5b")]
22 | public interface IProjectConfigProperties
23 | {
24 | string OutputPath {get; set;}
25 | }
26 |
27 | ///
28 | /// Implements the configuration dependent properties interface
29 | ///
30 | [CLSCompliant(false), ComVisible(true)]
31 | [ClassInterface(ClassInterfaceType.None)]
32 | public class ProjectConfigProperties : IProjectConfigProperties
33 | {
34 | #region fields
35 | private ProjectConfig projectConfig;
36 | #endregion
37 |
38 | #region ctors
39 | public ProjectConfigProperties(ProjectConfig projectConfig)
40 | {
41 | this.projectConfig = projectConfig;
42 | }
43 | #endregion
44 |
45 | #region IProjectConfigProperties Members
46 |
47 | public virtual string OutputPath
48 | {
49 | get
50 | {
51 | return this.projectConfig.GetConfigurationProperty(BuildPropertyPageTag.OutputPath.ToString(), true);
52 | }
53 | set
54 | {
55 | this.projectConfig.SetConfigurationProperty(BuildPropertyPageTag.OutputPath.ToString(), value);
56 | }
57 | }
58 |
59 | #endregion
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/OAReferenceFolderItem.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System;
4 | using Microsoft.VisualStudio.Shell.Interop;
5 | using Microsoft.VisualStudio.Shell;
6 | using System.Runtime.InteropServices;
7 | using System.Collections.Generic;
8 | using System.Collections;
9 | using System.Diagnostics;
10 | using System.Runtime.Serialization;
11 | using System.Reflection;
12 | using IServiceProvider = System.IServiceProvider;
13 | using Microsoft.VisualStudio.OLE.Interop;
14 | using System.Diagnostics.CodeAnalysis;
15 |
16 | namespace Microsoft.VisualStudio.Package.Automation
17 | {
18 | ///
19 | /// Contains OAReferenceItem objects
20 | ///
21 | [SuppressMessage("Microsoft.Interoperability", "CA1405:ComVisibleTypeBaseTypesShouldBeComVisible")]
22 | [ComVisible(true), CLSCompliant(false)]
23 | public class OAReferenceFolderItem : OAProjectItem
24 | {
25 | #region ctors
26 | public OAReferenceFolderItem(OAProject project, ReferenceContainerNode node)
27 | : base(project, node)
28 | {
29 | }
30 |
31 | #endregion
32 |
33 | #region overridden methods
34 | ///
35 | /// Returns the project items collection of all the references defined for this project.
36 | ///
37 | public override EnvDTE.ProjectItems ProjectItems
38 | {
39 | get
40 | {
41 | return new OANavigableProjectItems(this.Project, this.GetListOfProjectItems(), this.Node);
42 | }
43 | }
44 |
45 |
46 | #endregion
47 |
48 | #region Helper methods
49 | private List GetListOfProjectItems()
50 | {
51 | List list = new List();
52 | for (HierarchyNode child = this.Node.FirstChild; child != null; child = child.NextSibling)
53 | {
54 | if (child is ReferenceNode)
55 | {
56 | list.Add(new OAReferenceItem(this.Project, child as ReferenceNode));
57 | }
58 | }
59 |
60 | return list;
61 | }
62 | #endregion
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/OANestedProjectItem.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System;
4 | using Microsoft.VisualStudio.Shell.Interop;
5 | using Microsoft.VisualStudio.Shell;
6 | using System.Runtime.InteropServices;
7 | using System.Collections.Generic;
8 | using System.Collections;
9 | using System.Diagnostics;
10 | using System.Runtime.Serialization;
11 | using System.Reflection;
12 | using IServiceProvider = System.IServiceProvider;
13 | using Microsoft.VisualStudio.OLE.Interop;
14 | using System.Diagnostics.CodeAnalysis;
15 |
16 | namespace Microsoft.VisualStudio.Package.Automation
17 | {
18 | [SuppressMessage("Microsoft.Interoperability", "CA1405:ComVisibleTypeBaseTypesShouldBeComVisible")]
19 | [ComVisible(true), CLSCompliant(false)]
20 | public class OANestedProjectItem : OAProjectItem
21 | {
22 | #region fields
23 | EnvDTE.Project nestedProject = null;
24 | #endregion
25 |
26 | #region ctors
27 | public OANestedProjectItem(OAProject project, NestedProjectNode node)
28 | : base(project, node)
29 | {
30 | object nestedproject = null;
31 | if (ErrorHandler.Succeeded(node.NestedHierarchy.GetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_ExtObject, out nestedproject)))
32 | {
33 | this.nestedProject = nestedproject as EnvDTE.Project;
34 | }
35 | }
36 |
37 | #endregion
38 |
39 | #region overridden methods
40 | ///
41 | /// Returns the collection of project items defined in the nested project
42 | ///
43 | public override EnvDTE.ProjectItems ProjectItems
44 | {
45 | get
46 | {
47 | if (this.nestedProject != null)
48 | {
49 | return this.nestedProject.ProjectItems;
50 | }
51 | return null;
52 | }
53 | }
54 |
55 | ///
56 | /// Returns the nested project.
57 | ///
58 | public override EnvDTE.Project SubProject
59 | {
60 | get
61 | {
62 | return this.nestedProject;
63 | }
64 | }
65 | #endregion
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/src/votive.shared/PropertyPages/WixBuildEventsPropertyPagePanel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension.PropertyPages
4 | {
5 | using WixToolset.VisualStudioExtension.Forms;
6 |
7 | ///
8 | /// Property page contents for the Candle Settings page.
9 | ///
10 | internal partial class WixBuildEventsPropertyPagePanel : WixPropertyPagePanel
11 | {
12 | // =========================================================================================
13 | // Member Variables
14 | // =========================================================================================
15 |
16 | private WixBuildEventEditorForm editorForm = new WixBuildEventEditorForm(null);
17 |
18 | // =========================================================================================
19 | // Constructors
20 | // =========================================================================================
21 |
22 | ///
23 | /// Initializes a new instance of the class.
24 | ///
25 | /// The parent property page to which this is bound.
26 | public WixBuildEventsPropertyPagePanel(WixPropertyPage parentPropertyPage)
27 | : base(parentPropertyPage)
28 | {
29 | this.InitializeComponent();
30 |
31 | // hook up the form to both editors
32 | this.preBuildEditor.Initialize(parentPropertyPage.ProjectMgr, this.editorForm);
33 | this.postBuildEditor.Initialize(parentPropertyPage.ProjectMgr, this.editorForm);
34 |
35 | this.preBuildEditor.TextBox.Tag = WixProjectFileConstants.PreBuildEvent;
36 | this.postBuildEditor.TextBox.Tag = WixProjectFileConstants.PostBuildEvent;
37 | this.runPostBuildComboBox.Tag = WixProjectFileConstants.RunPostBuildEvent;
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixBundleProject/BundleProject.wixproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x86
6 | 3.10
7 | $guid1$
8 | 2.0
9 | $safeprojectname$
10 | Bundle
11 |
12 |
13 | bin\$(Configuration)\
14 | obj\$(Configuration)\
15 | Debug
16 |
17 |
18 | bin\$(Configuration)\
19 | obj\$(Configuration)\
20 |
21 |
22 |
23 |
24 |
25 |
26 | $(WixExtDir)\WixBalExtension.dll
27 | WixBalExtension
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
43 |
44 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/ProjectOptions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System;
4 | using System.Collections.Specialized;
5 | using System.Diagnostics.CodeAnalysis;
6 |
7 | namespace Microsoft.VisualStudio.Package
8 | {
9 |
10 | public class ProjectOptions : System.CodeDom.Compiler.CompilerParameters
11 | {
12 |
13 | public ModuleKindFlags ModuleKind = ModuleKindFlags.ConsoleApplication;
14 |
15 | public bool EmitManifest = true;
16 |
17 | [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "PreProcessor")]
18 | public StringCollection DefinedPreProcessorSymbols;
19 |
20 | public string XMLDocFileName;
21 |
22 | public string RecursiveWildcard;
23 |
24 | public StringCollection ReferencedModules;
25 |
26 | public string Win32Icon;
27 |
28 | public bool PDBOnly;
29 |
30 | public bool Optimize;
31 |
32 | public bool IncrementalCompile;
33 |
34 | public int[] SuppressedWarnings;
35 |
36 | public bool CheckedArithmetic;
37 |
38 | public bool AllowUnsafeCode;
39 |
40 | public bool DisplayCommandLineHelp;
41 |
42 | public bool SuppressLogo;
43 |
44 | public long BaseAddress;
45 |
46 | public string BugReportFileName;
47 |
48 | /// must be an int if not null
49 | public object CodePage;
50 |
51 | public bool EncodeOutputInUTF8;
52 |
53 | [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Qualifiy")]
54 | public bool FullyQualifiyPaths;
55 |
56 | public int FileAlignment;
57 |
58 | public bool NoStandardLibrary;
59 |
60 | public StringCollection AdditionalSearchPaths;
61 |
62 | public bool HeuristicReferenceResolution;
63 |
64 | public string RootNamespace;
65 |
66 | public bool CompileAndExecute;
67 |
68 | /// must be an int if not null.
69 | public object UserLocaleId;
70 |
71 | public PlatformType TargetPlatform;
72 |
73 | public string TargetPlatformLocation;
74 |
75 | public virtual string GetOptionHelp()
76 | {
77 | return null;
78 | }
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixProject/WixProject.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Setup Project
4 | A project for creating an MSI file
5 | WixProject.ico
6 | WiX
7 | 20
8 | 1
9 | true
10 | SetupProject
11 | true
12 | false
13 |
14 |
15 |
16 | Product.wxs
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/votive.shared/Templates/v3/Projects/WixBundleProject/BundleProject.wixproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Debug
4 | x86
5 | 3.10
6 | $guid1$
7 | 2.0
8 | $safeprojectname$
9 | Bundle
10 | $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix2010.targets
11 | $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix2010.targets
12 |
13 |
14 | bin\$(Configuration)\
15 | obj\$(Configuration)\
16 | Debug
17 |
18 |
19 | bin\$(Configuration)\
20 | obj\$(Configuration)\
21 |
22 |
23 |
24 |
25 |
26 |
27 | $(WixExtDir)\WixBalExtension.dll
28 | WixBalExtension
29 |
30 |
31 |
32 |
33 |
34 |
35 |
43 |
44 |
--------------------------------------------------------------------------------
/src/votive.shared/WixNonMemberDesignPropertyDescriptor.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.ComponentModel;
7 | using Microsoft.VisualStudio.Package;
8 |
9 | ///
10 | /// Subclasses to allow for non-bolded text in the property grid.
11 | ///
12 | public class WixNonMemberDesignPropertyDescriptor : DesignPropertyDescriptor
13 | {
14 | // =========================================================================================
15 | // Constructors
16 | // =========================================================================================
17 |
18 | ///
19 | /// Initializes a new instance of the class.
20 | ///
21 | /// The to wrap.
22 | public WixNonMemberDesignPropertyDescriptor(PropertyDescriptor propertyDescriptor)
23 | : base(propertyDescriptor)
24 | {
25 | }
26 |
27 | ///
28 | /// Properties of non-member nodes should be read-only.
29 | ///
30 | public override bool IsReadOnly
31 | {
32 | get
33 | {
34 | return true;
35 | }
36 | }
37 |
38 | // =========================================================================================
39 | // Methods
40 | // =========================================================================================
41 |
42 | ///
43 | /// By returning false here, we're always going to show the property as non-bolded.
44 | ///
45 | /// The component to check.
46 | /// Always returns false.
47 | public override bool ShouldSerializeValue(object component)
48 | {
49 | return false;
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/PropertiesEditorLauncher.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using Microsoft.VisualStudio.OLE.Interop;
4 | using Microsoft.VisualStudio.Shell;
5 | using Microsoft.VisualStudio.Shell.Interop;
6 | using Microsoft.VisualStudio.Designer.Interfaces;
7 | using System;
8 | using System.Collections;
9 | using System.ComponentModel;
10 | using System.Globalization;
11 | using System.Runtime.InteropServices;
12 | using System.Diagnostics;
13 |
14 | using ErrorHandler = Microsoft.VisualStudio.ErrorHandler;
15 |
16 | namespace Microsoft.VisualStudio.Package
17 | {
18 | ///
19 | /// This class is used to enable launching the project properties
20 | /// editor from the Properties Browser.
21 | ///
22 | [CLSCompliant(false)]
23 | public class PropertiesEditorLauncher : ComponentEditor
24 | {
25 | private ServiceProvider serviceProvider;
26 |
27 | #region ctor
28 | public PropertiesEditorLauncher(ServiceProvider serviceProvider)
29 | {
30 | if (serviceProvider == null)
31 | throw new ArgumentNullException("serviceProvider");
32 |
33 | this.serviceProvider = serviceProvider;
34 | }
35 | #endregion
36 | #region overridden methods
37 | ///
38 | /// Launch the Project Properties Editor (properties pages)
39 | ///
40 | /// If we succeeded or not
41 | public override bool EditComponent(ITypeDescriptorContext context, object component)
42 | {
43 | if (component is ProjectNodeProperties)
44 | {
45 | IVsPropertyPageFrame propertyPageFrame = (IVsPropertyPageFrame)serviceProvider.GetService((typeof(SVsPropertyPageFrame)));
46 |
47 | int hr = propertyPageFrame.ShowFrame(Guid.Empty);
48 | if (ErrorHandler.Succeeded(hr))
49 | return true;
50 | else
51 | propertyPageFrame.ReportError(hr);
52 | }
53 |
54 | return false;
55 | }
56 | #endregion
57 |
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/votive.shared/WixLocalizedCategoryAttribute.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.ComponentModel;
7 |
8 | ///
9 | /// Subclasses to allow for localized strings retrieved
10 | /// from the resource assembly.
11 | ///
12 | [AttributeUsage(AttributeTargets.All)]
13 | public sealed class WixLocalizedCategoryAttribute : CategoryAttribute
14 | {
15 | // =========================================================================================
16 | // Constructors
17 | // =========================================================================================
18 |
19 | ///
20 | /// Initializes a new instance of the class.
21 | ///
22 | /// The string identifier to get.
23 | public WixLocalizedCategoryAttribute(string categoryId)
24 | : base(categoryId)
25 | {
26 | }
27 |
28 | ///
29 | /// Gets the identifier for the category.
30 | ///
31 | /// The identifier for the category.
32 | public string CategoryId
33 | {
34 | get { return this.Category; }
35 | }
36 |
37 | // =========================================================================================
38 | // Methods
39 | // =========================================================================================
40 |
41 | ///
42 | /// Looks up the localized name of the specified category.
43 | ///
44 | /// The identifer for the category to look up.
45 | /// The localized name of the category, or null if a localized name does not exist.
46 | protected override string GetLocalizedString(string value)
47 | {
48 | return WixStrings.ResourceManager.GetString(value);
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/votive.shared/FileSearchHelperMethods.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension.Build.Tasks
4 | {
5 | using System;
6 | using System.IO;
7 |
8 | ///
9 | /// Contains helper methods on searching for files
10 | ///
11 | public static class FileSearchHelperMethods
12 | {
13 | ///
14 | /// Searches for the existence of a file in multiple directories.
15 | /// Search is satisfied if default file path is valid and exists. If not,
16 | /// file name is extracted from default path and combined with each of the directories
17 | /// looking to see if it exists. If not found, input default path is returned.
18 | ///
19 | /// Array of directories to look in, without filenames in them
20 | /// Default path - to use if not found
21 | /// File path if file found. Empty string if not found
22 | public static string SearchFilePaths(string[] directories, string defaultFullPath)
23 | {
24 | if (String.IsNullOrEmpty(defaultFullPath))
25 | {
26 | return String.Empty;
27 | }
28 |
29 | if (File.Exists(defaultFullPath))
30 | {
31 | return defaultFullPath;
32 | }
33 |
34 | if (directories == null)
35 | {
36 | return string.Empty;
37 | }
38 |
39 | string fileName = Path.GetFileName(defaultFullPath);
40 | foreach (string currentPath in directories)
41 | {
42 | if (String.IsNullOrEmpty(currentPath) || String.IsNullOrEmpty(currentPath.Trim()))
43 | {
44 | continue;
45 | }
46 |
47 | if (File.Exists(Path.Combine(currentPath, fileName)))
48 | {
49 | return Path.Combine(currentPath, fileName);
50 | }
51 | }
52 |
53 | return String.Empty;
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/src/votive.shared/WixLibraryReferenceNodeProperties.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.Diagnostics;
7 | using System.Runtime.InteropServices;
8 | using Microsoft.VisualStudio.Package;
9 |
10 | ///
11 | /// Represents Wixlib reference node properties.
12 | ///
13 | /// This class must be public and marked as ComVisible in order for the DispatchWrapper to work correctly.
14 | [CLSCompliant(false)]
15 | [ComVisible(true)]
16 | [Guid("C69F4413-4204-4ef1-B195-A729F85F9285")]
17 | [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1409:ComVisibleTypesShouldBeCreatable")]
18 | public class WixLibraryReferenceNodeProperties : WixReferenceNodeProperties
19 | {
20 | // =========================================================================================
21 | // Constructors
22 | // =========================================================================================
23 |
24 | ///
25 | /// Initializes a new instance of the class.
26 | ///
27 | /// The node that contains the properties to expose via the Property Browser.
28 | public WixLibraryReferenceNodeProperties(WixLibraryReferenceNode node)
29 | : base(node)
30 | {
31 | }
32 |
33 | // =========================================================================================
34 | // Methods
35 | // =========================================================================================
36 |
37 | ///
38 | /// Returns the name that is displayed in the right hand side of the Properties window drop-down combo box.
39 | ///
40 | /// The class name of the object, or null if the class does not have a name.
41 | public override string GetClassName()
42 | {
43 | return WixStrings.WixLibraryReferenceProperties;
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/votive.shared/OAWixProject.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using EnvDTE;
6 | using Microsoft.VisualStudio.Package.Automation;
7 | using Microsoft.VisualStudio.Shell.Interop;
8 | using System;
9 | using System.Runtime.InteropServices;
10 |
11 | ///
12 | /// Represents automation object corresponding to a WiX project.
13 | ///
14 | [CLSCompliant(false), ComVisible(true)]
15 | [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1409:ComVisibleTypesShouldBeCreatable")]
16 | public class OAWixProject : OAProject
17 | {
18 | // =========================================================================================
19 | // Member variables
20 | // =========================================================================================
21 |
22 | ///
23 | /// Properties associated with the WiX project.
24 | ///
25 | private OAProperties properties;
26 |
27 | // =========================================================================================
28 | // Constructors
29 | // =========================================================================================
30 |
31 | ///
32 | /// Initializes a new instance of the class.
33 | ///
34 | /// The node to which this project belongs.
35 | public OAWixProject(WixProjectNode wixProject)
36 | : base(wixProject)
37 | {
38 | if (wixProject != null)
39 | {
40 | this.properties = new OAProperties(wixProject.NodeProperties);
41 | }
42 | }
43 |
44 | ///
45 | /// Properties of the project
46 | ///
47 | /// Collection of all project properties
48 | public override EnvDTE.Properties Properties
49 | {
50 | get
51 | {
52 | return this.properties;
53 | }
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/NestedProjectBuildDependency.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System;
4 | using System.Runtime.InteropServices;
5 | using Microsoft.VisualStudio.OLE.Interop;
6 | using Microsoft.VisualStudio.Shell;
7 | using Microsoft.VisualStudio.Shell.Interop;
8 | using System.Diagnostics;
9 | using System.Globalization;
10 | using System.Collections;
11 | using System.IO;
12 |
13 | namespace Microsoft.VisualStudio.Package
14 | {
15 | ///
16 | /// Used for adding a build dependency to nested project (not a real project reference)
17 | ///
18 | public class NestedProjectBuildDependency : IVsBuildDependency
19 | {
20 | IVsHierarchy dependentHierarchy = null;
21 |
22 | #region ctors
23 | [CLSCompliant(false)]
24 | public NestedProjectBuildDependency(IVsHierarchy dependentHierarchy)
25 | {
26 | this.dependentHierarchy = dependentHierarchy;
27 | }
28 | #endregion
29 |
30 | #region IVsBuildDependency methods
31 | public int get_CanonicalName(out string canonicalName)
32 | {
33 | canonicalName = null;
34 | return VSConstants.S_OK;
35 | }
36 |
37 | public int get_Type(out System.Guid guidType)
38 | {
39 | // All our dependencies are build projects
40 | guidType = VSConstants.GUID_VS_DEPTYPE_BUILD_PROJECT;
41 |
42 | return VSConstants.S_OK;
43 | }
44 |
45 | public int get_Description(out string description)
46 | {
47 | description = null;
48 | return VSConstants.S_OK;
49 | }
50 |
51 | [CLSCompliant(false)]
52 | public int get_HelpContext(out uint helpContext)
53 | {
54 | helpContext = 0;
55 | return VSConstants.E_NOTIMPL;
56 | }
57 |
58 | public int get_HelpFile(out string helpFile)
59 | {
60 | helpFile = null;
61 | return VSConstants.E_NOTIMPL;
62 | }
63 |
64 | public int get_MustUpdateBefore(out int mustUpdateBefore)
65 | {
66 | // Must always update dependencies
67 | mustUpdateBefore = 1;
68 |
69 | return VSConstants.S_OK;
70 | }
71 |
72 | public int get_ReferredProject(out object unknownProject)
73 | {
74 | unknownProject = this.dependentHierarchy;
75 |
76 | return (unknownProject == null) ? VSConstants.E_FAIL : VSConstants.S_OK;
77 | }
78 | #endregion
79 |
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/src/Templates/v3/Projects/WixProject/WixProject.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Setup Project for WiX v3
4 | A project for creating an MSI file using WiX Toolset v3
5 | WixProject.ico
6 |
7 |
8 |
9 |
10 | WiX
11 | 20
12 | 1
13 | true
14 | SetupProject
15 | true
16 | false
17 |
18 |
19 |
20 | Product.wxs
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/appveyor.yml:
--------------------------------------------------------------------------------
1 | # Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | branches:
4 | only:
5 | - master
6 | - develop
7 |
8 | image: Visual Studio 2019
9 |
10 | version: 0.0.0.{build}
11 | configuration: Release
12 |
13 | environment:
14 | DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
15 | DOTNET_CLI_TELEMETRY_OPTOUT: 1
16 | NUGET_XMLDOC_MODE: skip
17 |
18 | install:
19 | - msbuild tools\OneTimeWixBuildInitialization.proj
20 |
21 | before_build:
22 | - nuget restore Votive.sln
23 |
24 | build:
25 | project: src\src.proj
26 |
27 | pull_requests:
28 | do_not_increment_build_number: true
29 |
30 | nuget:
31 | disable_publish_on_pr: true
32 |
33 | skip_branch_with_pr: true
34 | skip_tags: true
35 |
36 | artifacts:
37 | - path: build\Release\**\*.vsix
38 |
39 | notifications:
40 | - provider: Slack
41 | incoming_webhook:
42 | secure: p5xuu+4x2JHfwGDMDe5KcG1k7gZxqYc4jWVwvyNZv5cvkubPD2waJs5yXMAXZNN7Z63/3PWHb7q4KoY/99AjauYa1nZ4c5qYqRPFRBKTHfA=
43 |
44 | for:
45 | -
46 | branches:
47 | only:
48 | - master
49 |
50 | environment:
51 | KeyPairDownloadToken:
52 | secure: HKpHJ0SC/XYHS4dhbuPQbgyjAaU4qKYwCElomqi8fcmeREVX9IWlV4ZcGF9P+yDoc7qFdnpb0ZbQLh/Q7KIn4aM07/y8kz8HBy8UAU4CS6xLo+pgXQhpejgxh00FFfcqbA9Y3nLGAzO2zdegEHfvvwL9agHHtSSqho4tGwCXrI4OBorcopNN1KfNyxfm5oIz
53 | PleaseSignOutput: true
54 | SignClientUser:
55 | secure: s+b2kuhi/AlE8ZYFsNVHFLfgJOwi0fIKMCOP+xL++8U=
56 | SignClientSecret:
57 | secure: tlJbxYs82lHpHf8dttYr4LpKbWSAC/gKlvyDfUWKBj0=
58 |
59 | install:
60 | - ps: $env:OFFICIAL_WIX_BUILD=$ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(".\wix4_keypair.snk")
61 | - ps: Start-FileDownload -Url "https://wixdl.blob.core.windows.net/secure/keys/wix4_keypair.snk${env:KeyPairDownloadToken}" -FileName "${env:OFFICIAL_WIX_BUILD}"
62 |
63 | after_build:
64 | - ps: Remove-Item "${env:OFFICIAL_WIX_BUILD}"
65 |
66 | deploy:
67 | provider: GitHub
68 | tag: v$(GitBuildVersion)
69 | release: WiX Toolset Visual Studio Extensions v$(GitBuildVersion)
70 | description: 'WiX Toolset Visual Studio Extensions (aka: Votive) release v$(GitBuildVersion)'
71 | artifact: /.*\.vsix/
72 | prerelease: true
73 | auth_token:
74 | secure: BuuXJ8z8dMoeeMPy4l7QbbNPFn1/CW9PRGZxMhH3IAFdtTftFKZHA7eqpBqiE2T3
75 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/BuildPropertyPage.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System;
4 | using Microsoft.VisualStudio.Shell.Interop;
5 | using Microsoft.VisualStudio.Package;
6 | using System.Runtime.InteropServices;
7 | using System.ComponentModel;
8 | using System.Diagnostics;
9 | using System.IO;
10 | using System.Diagnostics.CodeAnalysis;
11 | using System.Globalization;
12 |
13 | namespace Microsoft.VisualStudio.Package
14 | {
15 | ///
16 | /// Enumerated list of the properties shown on the build property page
17 | ///
18 | internal enum BuildPropertyPageTag
19 | {
20 | OutputPath
21 | }
22 |
23 | ///
24 | /// Defines the properties on the build property page and the logic the binds the properties to project data (load and save)
25 | ///
26 | [CLSCompliant(false), ComVisible(true), Guid("9B3DEA40-7F29-4a17-87A4-00EE08E8241E")]
27 | public class BuildPropertyPage : SettingsPage
28 | {
29 | #region fields
30 | private string outputPath;
31 |
32 | public BuildPropertyPage()
33 | {
34 | this.Name = SR.GetString(SR.BuildCaption, CultureInfo.CurrentUICulture);
35 | }
36 | #endregion
37 |
38 | #region properties
39 | [SRCategoryAttribute(SR.BuildCaption)]
40 | [LocDisplayName(SR.OutputPath)]
41 | [SRDescriptionAttribute(SR.OutputPathDescription)]
42 | public string OutputPath
43 | {
44 | get { return this.outputPath; }
45 | set { this.outputPath = value; this.IsDirty = true; }
46 | }
47 | #endregion
48 |
49 | #region overridden methods
50 | public override string GetClassName()
51 | {
52 | return this.GetType().FullName;
53 | }
54 |
55 | protected override void BindProperties()
56 | {
57 | if (this.ProjectMgr == null)
58 | {
59 | Debug.Assert(false);
60 | return;
61 | }
62 |
63 | this.outputPath = this.GetConfigProperty(BuildPropertyPageTag.OutputPath.ToString());
64 | }
65 |
66 | protected override int ApplyChanges()
67 | {
68 | if (this.ProjectMgr == null)
69 | {
70 | Debug.Assert(false);
71 | return VSConstants.E_INVALIDARG;
72 | }
73 |
74 | this.SetConfigProperty(BuildPropertyPageTag.OutputPath.ToString(), this.outputPath);
75 | this.IsDirty = false;
76 | return VSConstants.S_OK;
77 | }
78 | #endregion
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/EnumDependencies.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using Microsoft.VisualStudio.Shell.Interop;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Runtime.InteropServices;
7 | using Microsoft.VisualStudio.OLE.Interop;
8 | using Microsoft.VisualStudio.Shell;
9 | using System.Diagnostics;
10 | using System.Globalization;
11 | using System.Collections;
12 | using System.IO;
13 |
14 | namespace Microsoft.VisualStudio.Package
15 | {
16 | [CLSCompliant(false)]
17 | public class EnumDependencies : IVsEnumDependencies
18 | {
19 | private List dependencyList = new List();
20 |
21 | private uint nextIndex = 0;
22 |
23 | public EnumDependencies(IList dependencyList)
24 | {
25 | foreach (IVsDependency dependency in dependencyList)
26 | {
27 | this.dependencyList.Add(dependency);
28 | }
29 | }
30 |
31 | public EnumDependencies(IList dependencyList)
32 | {
33 | foreach (IVsBuildDependency dependency in dependencyList)
34 | {
35 | this.dependencyList.Add(dependency);
36 | }
37 | }
38 |
39 | public int Clone(out IVsEnumDependencies enumDependencies)
40 | {
41 | enumDependencies = new EnumDependencies(this.dependencyList);
42 | enumDependencies.Skip(this.nextIndex);
43 | return VSConstants.S_OK;
44 | }
45 |
46 | public int Next(uint elements, IVsDependency[] dependencies, out uint elementsFetched)
47 | {
48 | uint fetched = 0;
49 | int count = this.dependencyList.Count;
50 |
51 | while (this.nextIndex < count && elements > 0 && fetched < count)
52 | {
53 | dependencies[fetched] = this.dependencyList[(int)this.nextIndex];
54 | this.nextIndex++;
55 | fetched++;
56 | elements--;
57 |
58 | }
59 |
60 | elementsFetched = fetched;
61 |
62 | // Did we get 'em all?
63 | return (elements == 0 ? VSConstants.S_OK : VSConstants.S_FALSE);
64 | }
65 |
66 | public int Reset()
67 | {
68 | this.nextIndex = 0;
69 | return VSConstants.S_OK;
70 | }
71 |
72 | public int Skip(uint elements)
73 | {
74 | this.nextIndex += elements;
75 | uint count = (uint)this.dependencyList.Count;
76 |
77 | if (this.nextIndex > count)
78 | {
79 | this.nextIndex = count;
80 | return VSConstants.S_FALSE;
81 | }
82 | return VSConstants.S_OK;
83 | }
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/Tracing.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System.Diagnostics;
4 |
5 | namespace Microsoft.VisualStudio.Package
6 | {
7 | internal class CCITracing
8 | {
9 | private CCITracing() { }
10 |
11 | [ConditionalAttribute("Enable_CCIDiagnostics")]
12 | static void InternalTraceCall(int levels)
13 | {
14 | System.Diagnostics.StackFrame stack;
15 | stack = new System.Diagnostics.StackFrame(levels);
16 | System.Reflection.MethodBase method = stack.GetMethod();
17 | if (method != null)
18 | {
19 | string name = method.Name + " \tin class " + method.DeclaringType.Name;
20 | System.Diagnostics.Trace.WriteLine("Call Trace: \t" + name);
21 | }
22 | }
23 |
24 | [ConditionalAttribute("CCI_TRACING")]
25 | static public void TraceCall()
26 | {
27 | // skip this one as well
28 | CCITracing.InternalTraceCall(2);
29 | }
30 |
31 | [ConditionalAttribute("CCI_TRACING")]
32 | static public void TraceCall(string strParameters)
33 | {
34 | CCITracing.InternalTraceCall(2);
35 | System.Diagnostics.Trace.WriteLine("\tParameters: \t" + strParameters);
36 | }
37 |
38 | [ConditionalAttribute("CCI_TRACING")]
39 | static public void Trace(System.Exception e)
40 | {
41 | CCITracing.InternalTraceCall(2);
42 | System.Diagnostics.Trace.WriteLine("ExceptionInfo: \t" + e.ToString());
43 | }
44 |
45 | [ConditionalAttribute("CCI_TRACING")]
46 | static public void Trace(string strOutput)
47 | {
48 | System.Diagnostics.Trace.WriteLine(strOutput);
49 | }
50 |
51 | [ConditionalAttribute("CCI_TRACING")]
52 | static public void TraceData(string strOutput)
53 | {
54 | System.Diagnostics.Trace.WriteLine("Data Trace: \t" + strOutput);
55 | }
56 |
57 | [ConditionalAttribute("Enable_CCIFileOutput")]
58 | [ConditionalAttribute("CCI_TRACING")]
59 | static public void AddTraceLog(string strFileName)
60 | {
61 | TextWriterTraceListener tw = new TextWriterTraceListener("c:\\mytrace.log");
62 | System.Diagnostics.Trace.Listeners.Add(tw);
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/VSShellUtilities.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System;
4 | using Microsoft.VisualStudio.Shell.Interop;
5 | using System.Diagnostics;
6 |
7 | namespace Microsoft.VisualStudio.Package
8 | {
9 |
10 | ///
11 | ///This class provides some useful static shell based methods.
12 | ///
13 | [CLSCompliant(false)]
14 | public static class UIHierarchyUtilities
15 | {
16 | ///
17 | /// Get reference to IVsUIHierarchyWindow interface from guid persistence slot.
18 | ///
19 | /// The service provider.
20 | /// Unique identifier for a tool window created using IVsUIShell::CreateToolWindow.
21 | /// The caller of this method can use predefined identifiers that map to tool windows if those tool windows
22 | /// are known to the caller.
23 | /// A reference to an IVsUIHierarchyWindow interface.
24 | public static IVsUIHierarchyWindow GetUIHierarchyWindow(IServiceProvider serviceProvider, Guid persistenceSlot)
25 | {
26 | if (serviceProvider == null)
27 | {
28 | throw new ArgumentNullException("serviceProvider");
29 | }
30 |
31 | IVsUIShell shell = serviceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell;
32 |
33 | Debug.Assert(shell != null, "Could not get the ui shell from the project");
34 | if (shell == null)
35 | {
36 | throw new InvalidOperationException();
37 | }
38 |
39 | object pvar = null;
40 | IVsWindowFrame frame = null;
41 | IVsUIHierarchyWindow uiHierarchyWindow = null;
42 |
43 | try
44 | {
45 | if (0 == shell.FindToolWindow(0, ref persistenceSlot, out frame))
46 | {
47 | ErrorHandler.ThrowOnFailure(frame.GetProperty((int)__VSFPROPID.VSFPROPID_DocView, out pvar));
48 | }
49 | }
50 | finally
51 | {
52 | if (pvar != null)
53 | {
54 | uiHierarchyWindow = (IVsUIHierarchyWindow)pvar;
55 | }
56 | }
57 |
58 | return uiHierarchyWindow;
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/LangProj/OAVSProjectItem.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System;
4 | using Microsoft.VisualStudio.Shell.Interop;
5 | using Microsoft.VisualStudio.Shell;
6 | using Microsoft.VisualStudio.TextManager.Interop;
7 | using System.Runtime.InteropServices;
8 | using System.Collections.Generic;
9 | using System.Collections;
10 | using System.Diagnostics;
11 | using System.IO;
12 | using IServiceProvider = System.IServiceProvider;
13 | using Microsoft.VisualStudio.OLE.Interop;
14 | using Microsoft.VisualStudio.Package;
15 | using EnvDTE;
16 | using VSLangProj;
17 | using System.Diagnostics.CodeAnalysis;
18 |
19 | namespace Microsoft.VisualStudio.Package.Automation
20 | {
21 | ///
22 | /// Represents a language-specific project item
23 | ///
24 | [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "OAVS")]
25 | [ComVisible(true), CLSCompliant(false)]
26 | public class OAVSProjectItem : VSProjectItem
27 | {
28 | #region fields
29 | private FileNode fileNode;
30 | #endregion
31 |
32 | #region ctors
33 | public OAVSProjectItem(FileNode fileNode)
34 | {
35 | this.FileNode = fileNode;
36 | }
37 | #endregion
38 |
39 | #region VSProjectItem Members
40 |
41 | public virtual Project ContainingProject
42 | {
43 | get { return fileNode.ProjectMgr.GetAutomationObject() as Project; }
44 | }
45 |
46 | public virtual ProjectItem ProjectItem
47 | {
48 | get { return fileNode.GetAutomationObject() as ProjectItem; }
49 | }
50 |
51 | public virtual DTE DTE
52 | {
53 | get { return (DTE)this.fileNode.ProjectMgr.Site.GetService(typeof(DTE)); }
54 | }
55 |
56 | public virtual void RunCustomTool()
57 | {
58 | this.FileNode.RunGenerator();
59 | }
60 |
61 | #endregion
62 |
63 | #region public properties
64 | ///
65 | /// File Node property
66 | ///
67 | public FileNode FileNode
68 | {
69 | get
70 | {
71 | return fileNode;
72 | }
73 | set
74 | {
75 | fileNode = value;
76 | }
77 | }
78 | #endregion
79 |
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/src/votive.shared/WixLocalizedControlTextAttribute.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.ComponentModel;
7 |
8 | ///
9 | /// Attribute to denote the localized text that should be displayed on the control for the
10 | /// property page settings.
11 | ///
12 | [AttributeUsage(AttributeTargets.Property)]
13 | public sealed class WixLocalizedControlTextAttribute : Attribute
14 | {
15 | // =========================================================================================
16 | // Member Variables
17 | // =========================================================================================
18 |
19 | private string id;
20 |
21 | // =========================================================================================
22 | // Constructors
23 | // =========================================================================================
24 |
25 | ///
26 | /// Initializes a new instance of the class.
27 | ///
28 | /// The string identifier to get.
29 | public WixLocalizedControlTextAttribute(string controlTextId)
30 | {
31 | this.id = controlTextId;
32 | }
33 |
34 | // =========================================================================================
35 | // Properties
36 | // =========================================================================================
37 |
38 | ///
39 | /// Gets the identifier for the associated control or control's label.
40 | ///
41 | /// The identifier for the associated control or control's label.
42 | public string ControlTextId
43 | {
44 | get { return this.id; }
45 | }
46 |
47 | ///
48 | /// Gets the text to display for the associated control or control's label.
49 | ///
50 | /// The text to display for the associated control or control's label.
51 | public string ControlText
52 | {
53 | get
54 | {
55 | return WixStrings.ResourceManager.GetString(this.id);
56 | }
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/OANullProperty.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System;
4 | using Microsoft.VisualStudio.Shell.Interop;
5 | using Microsoft.VisualStudio.Shell;
6 | using System.Runtime.InteropServices;
7 | using System.Collections.Generic;
8 | using System.Collections;
9 | using System.Diagnostics;
10 | using System.Runtime.Serialization;
11 | using System.Reflection;
12 | using IServiceProvider = System.IServiceProvider;
13 | using Microsoft.VisualStudio.OLE.Interop;
14 |
15 | namespace Microsoft.VisualStudio.Package.Automation
16 | {
17 | ///
18 | /// This object defines a so called null object that is returned as instead of null. This is because callers in VSCore usually crash if a null propery is returned for them.
19 | ///
20 | [CLSCompliant(false), ComVisible(true)]
21 | public class OANullProperty : EnvDTE.Property
22 | {
23 | #region fields
24 | private OAProperties parent;
25 | #endregion
26 |
27 | #region ctors
28 |
29 | public OANullProperty(OAProperties parent)
30 | {
31 | this.parent = parent;
32 | }
33 | #endregion
34 |
35 | #region EnvDTE.Property
36 |
37 | public object Application
38 | {
39 | get { return String.Empty; }
40 | }
41 |
42 | public EnvDTE.Properties Collection
43 | {
44 | get
45 | {
46 | //todo: EnvDTE.Property.Collection
47 | return this.parent;
48 | }
49 | }
50 |
51 | public EnvDTE.DTE DTE
52 | {
53 | get { return null; }
54 | }
55 |
56 | public object get_IndexedValue(object index1, object index2, object index3, object index4)
57 | {
58 | return String.Empty;
59 | }
60 |
61 | public void let_Value(object value)
62 | {
63 | //todo: let_Value
64 | }
65 |
66 | public string Name
67 | {
68 | get { return String.Empty; }
69 | }
70 |
71 | public short NumIndices
72 | {
73 | get { return 0; }
74 | }
75 |
76 | public object Object
77 | {
78 | get { return this.parent.Target; }
79 | set
80 | {
81 | }
82 | }
83 |
84 | public EnvDTE.Properties Parent
85 | {
86 | get { return this.parent; }
87 | }
88 |
89 | public void set_IndexedValue(object index1, object index2, object index3, object index4, object value)
90 | {
91 |
92 | }
93 |
94 | public object Value
95 | {
96 | get { return String.Empty; }
97 | set { }
98 | }
99 | #endregion
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/src/votive.shared/WixFileNodeProperties.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.ComponentModel;
7 | using System.Diagnostics.CodeAnalysis;
8 | using System.Runtime.InteropServices;
9 | using Microsoft.VisualStudio.Package;
10 |
11 | ///
12 | /// Represents file node properties.
13 | ///
14 | /// This class must be public and marked as ComVisible in order for the DispatchWrapper to work correctly.
15 | [CLSCompliant(false)]
16 | [ComVisible(true)]
17 | [Guid("631866A5-D633-419D-8A2C-90D91C24BE7B")]
18 | [SuppressMessage("Microsoft.Interoperability", "CA1409:ComVisibleTypesShouldBeCreatable")]
19 | public class WixFileNodeProperties : FileNodeProperties
20 | {
21 | // =========================================================================================
22 | // Constructors
23 | // =========================================================================================
24 |
25 | ///
26 | /// Initializes a new instance of the class.
27 | ///
28 | /// The node that contains the properties to expose via the Property Browser.
29 | public WixFileNodeProperties(WixFileNode node)
30 | : base(node)
31 | {
32 | }
33 |
34 | // =========================================================================================
35 | // Methods
36 | // =========================================================================================
37 |
38 | ///
39 | /// Creates a custom property descriptor for the node properties, which affects the behavior
40 | /// of the property grid.
41 | ///
42 | /// The to wrap.
43 | /// A custom object.
44 | [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#", Justification = "In the 2005 SDK, it's called p and in the 2008 SDK it's propertyDescriptor")]
45 | public override DesignPropertyDescriptor CreateDesignPropertyDescriptor(PropertyDescriptor propertyDescriptor)
46 | {
47 | return new WixDesignPropertyDescriptor(propertyDescriptor);
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/votive.shared/WixFolderNodeProperties.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.ComponentModel;
7 | using System.Diagnostics.CodeAnalysis;
8 | using System.Runtime.InteropServices;
9 | using Microsoft.VisualStudio.Package;
10 |
11 | ///
12 | /// Represents folder node properties.
13 | ///
14 | /// This class must be public and marked as ComVisible in order for the DispatchWrapper to work correctly.
15 | [CLSCompliant(false)]
16 | [ComVisible(true)]
17 | [Guid("C500F21B-92C7-4987-A425-1FB6B42CFBFD")]
18 | [SuppressMessage("Microsoft.Interoperability", "CA1409:ComVisibleTypesShouldBeCreatable")]
19 | public class WixFolderNodeProperties : FolderNodeProperties
20 | {
21 | // =========================================================================================
22 | // Constructors
23 | // =========================================================================================
24 |
25 | ///
26 | /// Initializes a new instance of the class.
27 | ///
28 | /// The node that contains the properties to expose via the Property Browser.
29 | public WixFolderNodeProperties(WixFolderNode node)
30 | : base(node)
31 | {
32 | }
33 |
34 | // =========================================================================================
35 | // Methods
36 | // =========================================================================================
37 |
38 | ///
39 | /// Creates a custom property descriptor for the node properties, which affects the behavior
40 | /// of the property grid.
41 | ///
42 | /// The to wrap.
43 | /// A custom object.
44 | [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#", Justification = "In the 2005 SDK, it's called p and in the 2008 SDK it's propertyDescriptor")]
45 | public override DesignPropertyDescriptor CreateDesignPropertyDescriptor(PropertyDescriptor propertyDescriptor)
46 | {
47 | return new WixDesignPropertyDescriptor(propertyDescriptor);
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/votive.shared/WixLinkedFileNodeProperties.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.ComponentModel;
7 | using System.Diagnostics.CodeAnalysis;
8 | using System.Runtime.InteropServices;
9 | using Microsoft.VisualStudio.Package;
10 |
11 | ///
12 | /// Represents file node properties.
13 | ///
14 | /// This class must be public and marked as ComVisible in order for the DispatchWrapper to work correctly.
15 | [CLSCompliant(false)]
16 | [ComVisible(true)]
17 | [Guid("A8C51FF6-5E9D-40A1-A57D-667756391FFF")]
18 | [SuppressMessage("Microsoft.Interoperability", "CA1409:ComVisibleTypesShouldBeCreatable")]
19 | public class WixLinkedFileNodeProperties : LinkedFileNodeProperties
20 | {
21 | // =========================================================================================
22 | // Constructors
23 | // =========================================================================================
24 |
25 | ///
26 | /// Initializes a new instance of the class.
27 | ///
28 | /// The node that contains the properties to expose via the Property Browser.
29 | public WixLinkedFileNodeProperties(WixFileNode node)
30 | : base(node)
31 | {
32 | }
33 |
34 | // =========================================================================================
35 | // Methods
36 | // =========================================================================================
37 |
38 | ///
39 | /// Creates a custom property descriptor for the node properties, which affects the behavior
40 | /// of the property grid.
41 | ///
42 | /// The to wrap.
43 | /// A custom object.
44 | [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#", Justification = "In the 2005 SDK, it's called p and in the 2008 SDK it's propertyDescriptor")]
45 | public override DesignPropertyDescriptor CreateDesignPropertyDescriptor(PropertyDescriptor propertyDescriptor)
46 | {
47 | return new WixDesignPropertyDescriptor(propertyDescriptor);
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/votive.shared/WixProjectConfig.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.Collections.Generic;
7 | using System.Diagnostics;
8 | using System.Diagnostics.CodeAnalysis;
9 | using System.Drawing;
10 | using System.Globalization;
11 | using System.IO;
12 | using System.Runtime.InteropServices;
13 | using System.Text;
14 | using Microsoft.VisualStudio;
15 | using Microsoft.VisualStudio.Package;
16 | using Microsoft.VisualStudio.Package.Automation;
17 | using Microsoft.VisualStudio.Shell;
18 | using Microsoft.VisualStudio.Shell.Interop;
19 |
20 | ///
21 | /// Allows getting and setting configuration-dependent properties for a WiX project.
22 | ///
23 | [CLSCompliant(false)]
24 | public class WixProjectConfig : ProjectConfig
25 | {
26 | internal const string X86Platform = "x86";
27 | internal const string X64Platform = "x64";
28 | internal const string IA64Platform = "ia64";
29 |
30 | internal const string DebugConfiguration = "Debug";
31 | internal const string ReleaseConfiguration = "Release";
32 |
33 | internal const string ConfigConditionString = " '$(Configuration)' == '{0}' ";
34 | internal const string PlatformConditionString = " '$(Platform)' == '{0}' ";
35 | internal const string ConfigAndPlatformConditionString = " '$(Configuration)|$(Platform)' == '{0}|{1}' ";
36 |
37 | ///
38 | /// Creates a new project config instance.
39 | ///
40 | /// Parent project node.
41 | /// Configuration name such as "Debug".
42 | /// Platform name such as "x86".
43 | public WixProjectConfig(WixProjectNode project, string configName, string platformName)
44 | : base(project, new ConfigCanonicalName(configName, platformName))
45 | {
46 | }
47 |
48 | ///
49 | /// Gets the conditional expression for the PropertyGroup corresponding to the project config.
50 | ///
51 | public override string Condition
52 | {
53 | get
54 | {
55 | return String.Format(CultureInfo.InvariantCulture, WixProjectConfig.ConfigAndPlatformConditionString, this.ConfigCanonicalName.ConfigName, this.ConfigCanonicalName.MSBuildPlatform);
56 | }
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/votive.shared/WixFolderNodeNonMemberProperties.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension
4 | {
5 | using System;
6 | using System.ComponentModel;
7 | using System.Diagnostics.CodeAnalysis;
8 | using System.Runtime.InteropServices;
9 | using Microsoft.VisualStudio.Package;
10 |
11 | ///
12 | /// Represents folder node properties.
13 | ///
14 | /// This class must be public and marked as ComVisible in order for the DispatchWrapper to work correctly.
15 | [CLSCompliant(false)]
16 | [ComVisible(true)]
17 | [Guid("CCD1095F-96A4-4D78-AB8C-CAFF7C7731AC")]
18 | [SuppressMessage("Microsoft.Interoperability", "CA1409:ComVisibleTypesShouldBeCreatable")]
19 | public class WixFolderNodeNonMemberProperties : FolderNodeProperties
20 | {
21 | // =========================================================================================
22 | // Constructors
23 | // =========================================================================================
24 |
25 | ///
26 | /// Initializes a new instance of the class.
27 | ///
28 | /// The node that contains the properties to expose via the Property Browser.
29 | public WixFolderNodeNonMemberProperties(WixFolderNode node)
30 | : base(node)
31 | {
32 | }
33 |
34 | // =========================================================================================
35 | // Methods
36 | // =========================================================================================
37 |
38 | ///
39 | /// Creates a custom property descriptor for the node properties, which affects the behavior
40 | /// of the property grid.
41 | ///
42 | /// The to wrap.
43 | /// A custom object.
44 | [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#", Justification = "In the 2005 SDK, it's called p and in the 2008 SDK it's propertyDescriptor")]
45 | public override DesignPropertyDescriptor CreateDesignPropertyDescriptor(PropertyDescriptor propertyDescriptor)
46 | {
47 | return new WixNonMemberDesignPropertyDescriptor(propertyDescriptor);
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/tools/WixBuild.csproj.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 9.0.21022
9 | 2.0
10 | Debug
11 | AnyCPU
12 | false
13 | true
14 | $(OverrideCheckForOverflowUnderflow)
15 | prompt
16 | 4096
17 | false
18 | false
19 | true
20 | 4
21 | $(DefineConstants);TRACE
22 | v4.0
23 | 15.0
24 | $(NoWarn);2008
25 |
26 |
27 |
28 | $(IntermediateOutputPath)$(AssemblyName).xml
29 |
30 |
31 |
32 | $(DefineConstants);DEBUG;TRACE
33 |
34 |
35 |
36 | $(DefineConstants);TRACE
37 |
38 |
39 |
40 | WixDistribution.cs
41 |
42 |
43 |
44 |
45 | Properties\$(DistCS)
46 | true
47 | false
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/src/votive.shared/PropertyPages/WixToolsSettingsPropertyPagePanel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | namespace WixToolset.VisualStudioExtension.PropertyPages
4 | {
5 | using System;
6 | using System.Collections.Generic;
7 | using System.ComponentModel;
8 | using System.Drawing;
9 | using System.Text;
10 | using System.Windows.Forms;
11 |
12 | ///
13 | /// Property page contents for the Tools Settings page
14 | ///
15 | internal partial class WixToolsSettingsPropertyPagePanel : WixPropertyPagePanel
16 | {
17 | ///
18 | /// Initializes a new instance of the WixToolSettingsPropertyPagePanel class.
19 | ///
20 | /// The parent property page to which this is bound
21 | public WixToolsSettingsPropertyPagePanel(WixPropertyPage parentPropertyPage)
22 | : base(parentPropertyPage)
23 | {
24 | this.InitializeComponent();
25 |
26 | this.suppressIceCheckbox.Tag = WixProjectFileConstants.SuppressValidation;
27 | this.specificIceTextBox.Tag = WixProjectFileConstants.SuppressIces;
28 | this.compilerTextBox.Tag = WixProjectFileConstants.CompilerAdditionalOptions;
29 | this.linkerTextBox.Tag = WixProjectFileConstants.LinkerAdditionalOptions;
30 | this.librarianTextBox.Tag = WixProjectFileConstants.LibAdditionalOptions;
31 |
32 | this.suppressIceCheckbox.CheckStateChanged += delegate
33 | {
34 | this.specificIceTextBox.Enabled = (this.suppressIceCheckbox.CheckState != CheckState.Checked);
35 | };
36 | }
37 |
38 | ///
39 | /// Binds the properties from the MSBuild project file to the controls on the property page.
40 | ///
41 | protected internal override void BindProperties()
42 | {
43 | base.BindProperties();
44 |
45 | WixOutputType projectType = this.ParentPropertyPage.ProjectMgr.OutputType;
46 | this.linkerLibrarianLabel.Text = (projectType == WixOutputType.Library ? WixStrings.Librarian : WixStrings.Linker);
47 | this.linkerTextBox.Visible = (projectType != WixOutputType.Library);
48 | this.librarianTextBox.Visible = (projectType == WixOutputType.Library);
49 | this.suppressIceCheckbox.Enabled = (projectType != WixOutputType.Library && projectType != WixOutputType.Bundle);
50 | this.specificIceTextBox.Enabled = (projectType != WixOutputType.Library && projectType != WixOutputType.Bundle);
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/votive.shared/ProjectBase/LangProj/OAComReference.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 |
3 | using System;
4 | using System.Globalization;
5 | using System.Runtime.InteropServices;
6 |
7 | using Microsoft.VisualStudio.Package;
8 | using VSLangProj;
9 | using System.Diagnostics.CodeAnalysis;
10 |
11 | namespace Microsoft.VisualStudio.Package.Automation
12 | {
13 | [SuppressMessage("Microsoft.Interoperability", "CA1405:ComVisibleTypeBaseTypesShouldBeComVisible")]
14 | [CLSCompliant(false), ComVisible(true)]
15 | public class OAComReference : OAReferenceBase
16 | {
17 | public OAComReference(ComReferenceNode comReference) :
18 | base(comReference)
19 | {
20 | }
21 |
22 | #region Reference override
23 | public override string Culture
24 | {
25 | get
26 | {
27 | int locale = 0;
28 | try
29 | {
30 | locale = int.Parse(BaseReferenceNode.LCID, CultureInfo.InvariantCulture);
31 | }
32 | catch (System.FormatException)
33 | {
34 | // Do Nothing
35 | }
36 | if (0 == locale)
37 | {
38 | return string.Empty;
39 | }
40 | CultureInfo culture = new CultureInfo(locale);
41 | return culture.Name;
42 | }
43 | }
44 | public override string Identity
45 | {
46 | get
47 | {
48 | return String.Format(CultureInfo.InvariantCulture, "{0}\\{1}", BaseReferenceNode.TypeGuid.ToString("B"), this.Version);
49 | }
50 | }
51 | public override int MajorVersion
52 | {
53 | get { return BaseReferenceNode.MajorVersionNumber; }
54 | }
55 | public override int MinorVersion
56 | {
57 | get { return BaseReferenceNode.MinorVersionNumber; }
58 | }
59 | public override string Name
60 | {
61 | get { return BaseReferenceNode.Caption; }
62 | }
63 | public override VSLangProj.prjReferenceType Type
64 | {
65 | get
66 | {
67 | return VSLangProj.prjReferenceType.prjReferenceTypeActiveX;
68 | }
69 | }
70 | public override string Version
71 | {
72 | get
73 | {
74 | Version version = new Version(BaseReferenceNode.MajorVersionNumber, BaseReferenceNode.MinorVersionNumber);
75 | return version.ToString();
76 | }
77 | }
78 | #endregion
79 | }
80 | }
81 |
--------------------------------------------------------------------------------