├── src ├── SampleSolution │ ├── TextFile1.txt │ ├── ClassLibraryVB │ │ ├── Class1.vb │ │ ├── My Project │ │ │ ├── Settings.settings │ │ │ ├── Application.Designer.vb │ │ │ ├── Application.myapp │ │ │ ├── AssemblyInfo.vb │ │ │ ├── Resources.Designer.vb │ │ │ ├── Settings.Designer.vb │ │ │ └── Resources.resx │ │ └── ClassLibraryVB.vbproj │ ├── WindowsFormsApplicationVB │ │ ├── Form1.vb │ │ ├── App.config │ │ ├── My Project │ │ │ ├── Settings.settings │ │ │ ├── Application.myapp │ │ │ ├── AssemblyInfo.vb │ │ │ ├── Application.Designer.vb │ │ │ ├── Resources.Designer.vb │ │ │ └── Settings.Designer.vb │ │ ├── Form1.Designer.vb │ │ └── WindowsFormsApplicationVB.vbproj │ ├── WpfApplicationVB │ │ ├── MainWindow.xaml.vb │ │ ├── Application.xaml.vb │ │ ├── App.config │ │ ├── MainWindow.xaml │ │ ├── My Project │ │ │ ├── Settings.settings │ │ │ ├── AssemblyInfo.vb │ │ │ ├── Resources.Designer.vb │ │ │ ├── Settings.Designer.vb │ │ │ └── Resources.resx │ │ └── Application.xaml │ ├── ClassLibraryCS │ │ ├── Class1.cs │ │ └── ClassLibraryCS.csproj │ ├── ClassLibraryFS │ │ ├── Library1.fs │ │ ├── Script.fsx │ │ └── ClassLibraryFS.fsproj │ ├── ConsoleApplicationVB │ │ ├── Module1.vb │ │ ├── App.config │ │ ├── My Project │ │ │ ├── Settings.settings │ │ │ ├── Application.Designer.vb │ │ │ ├── Application.myapp │ │ │ ├── AssemblyInfo.vb │ │ │ ├── Resources.Designer.vb │ │ │ ├── Settings.Designer.vb │ │ │ └── Resources.resx │ │ └── ConsoleApplicationVB.vbproj │ ├── ConsoleApplicationCS │ │ ├── Program.cs │ │ └── ConsoleApplicationCS.csproj │ ├── WpfApplicationCS │ │ ├── App.config │ │ ├── Properties │ │ │ ├── Settings.settings │ │ │ ├── Settings.Designer.cs │ │ │ ├── Resources.Designer.cs │ │ │ └── Resources.resx │ │ ├── MainWindow.xaml │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── MainWindow.xaml.cs │ │ └── WpfApplicationCS.csproj │ ├── ConsoleApplicationFS │ │ ├── App.config │ │ ├── Program.fs │ │ └── ConsoleApplicationFS.fsproj │ ├── WindowsFormsApplicationCS │ │ ├── App.config │ │ ├── Properties │ │ │ ├── Settings.settings │ │ │ ├── Settings.Designer.cs │ │ │ ├── Resources.Designer.cs │ │ │ └── Resources.resx │ │ ├── Form1.cs │ │ ├── Program.cs │ │ ├── Form1.Designer.cs │ │ └── WindowsFormsApplicationCS.csproj │ ├── AzureCloudService │ │ ├── ServiceDefinition.csdef │ │ ├── ServiceConfiguration.Cloud.cscfg │ │ ├── ServiceConfiguration.Local.cscfg │ │ └── AzureCloudService.ccproj │ ├── WebApplicationVB │ │ ├── My Project │ │ │ ├── Settings.settings │ │ │ ├── Application.Designer.vb │ │ │ ├── Application.myapp │ │ │ ├── AssemblyInfo.vb │ │ │ ├── Resources.Designer.vb │ │ │ ├── Settings.Designer.vb │ │ │ ├── MyExtensions │ │ │ │ └── MyWebExtension.vb │ │ │ └── Resources.resx │ │ ├── Web.config │ │ ├── Web.Debug.config │ │ └── Web.Release.config │ └── WebApplicationCS │ │ ├── Web.config │ │ ├── Web.Debug.config │ │ ├── Web.Release.config │ │ └── WebApplicationCS.csproj ├── SetStartupProjects │ ├── InternalsVisibleTo.cs │ ├── GlobalUsings.cs │ ├── Solution2017.suotemplate │ ├── Solution2019.suotemplate │ ├── Solution2022.suotemplate │ ├── Project.cs │ ├── Resource.cs │ ├── XmlExtensions.cs │ ├── VisualStudioVersions.cs │ ├── SetStartupProjects.csproj │ ├── SolutionProjectExtractor.cs │ └── StartProjectSuoCreator.cs ├── icon.png ├── Tests │ ├── SimpleSolutionWithDefault │ │ ├── SimpleSolution.StartupProjects.txt │ │ ├── SimpleSolution.sln │ │ ├── ClassLibrary │ │ │ └── ClassLibrary.csproj │ │ └── ConsoleApplication │ │ │ └── ConsoleApplication.csproj │ ├── GlobalUsings.cs │ ├── ModuleInitializer.cs │ ├── WebApplication_websdk.txt │ ├── SolutionProjectExtractorTests.cs │ ├── Samples.cs │ ├── OutputType_Conditional_Exe.txt │ ├── OutputType_Exe.txt │ ├── OutputType_Lib.txt │ ├── Lower_Include.txt │ ├── Multiple_Exclude.txt │ ├── Multiple_Include.txt │ ├── StartActionIsProgram.txt │ ├── WebApplication_xproj.txt │ ├── SolutionProjectExtractorTests.GetAllProjectFiles.OSX.verified.txt │ ├── SolutionProjectExtractorTests.GetAllProjectFiles.Windows.verified.txt │ ├── Tests.csproj │ ├── StartProjectFinderTests.cs │ └── OutputType_WinExe.txt ├── Images │ ├── itworked.png │ ├── textoutput.png │ ├── desiredoutput.png │ ├── encodingtest.png │ ├── enablemultistart.png │ ├── startprojectformat.png │ └── structuredstorageexplorer.png ├── mdsnippets.json ├── global.json ├── .gitattributes ├── SetStartupProjects.slnx ├── Directory.Build.props ├── SetStartupProjects.slnx.DotSettings ├── Directory.Packages.props ├── nuget.config └── appveyor.yml ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── config.yml │ ├── feature_request.md │ └── bug_report.md ├── dependabot.yml ├── workflows │ ├── merge-dependabot.yml │ └── on-push-do-doco.yml └── stale.yml ├── .gitignore ├── license.txt └── code_of_conduct.md /src/SampleSolution/TextFile1.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: SimonCropp 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false -------------------------------------------------------------------------------- /src/SetStartupProjects/InternalsVisibleTo.cs: -------------------------------------------------------------------------------- 1 | [assembly:InternalsVisibleTo("Tests")] -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryVB/Class1.vb: -------------------------------------------------------------------------------- 1 | Public Class Class1 2 | 3 | End Class 4 | -------------------------------------------------------------------------------- /src/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonCropp/SetStartupProjects/HEAD/src/icon.png -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationVB/Form1.vb: -------------------------------------------------------------------------------- 1 | Public Class Form1 2 | 3 | End Class 4 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationVB/MainWindow.xaml.vb: -------------------------------------------------------------------------------- 1 | Class MainWindow 2 | 3 | End Class 4 | -------------------------------------------------------------------------------- /src/SetStartupProjects/GlobalUsings.cs: -------------------------------------------------------------------------------- 1 | global using System.Xml.Linq; 2 | global using OpenMcdf; -------------------------------------------------------------------------------- /src/Tests/SimpleSolutionWithDefault/SimpleSolution.StartupProjects.txt: -------------------------------------------------------------------------------- 1 | ClassLibrary\ClassLibrary.csproj -------------------------------------------------------------------------------- /src/Images/itworked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonCropp/SetStartupProjects/HEAD/src/Images/itworked.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.suo 2 | *.user 3 | bin/ 4 | obj/ 5 | .vs/ 6 | *.DotSettings.user 7 | .idea/ 8 | *.received.* 9 | nugets/ -------------------------------------------------------------------------------- /src/Images/textoutput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonCropp/SetStartupProjects/HEAD/src/Images/textoutput.png -------------------------------------------------------------------------------- /src/mdsnippets.json: -------------------------------------------------------------------------------- 1 | { 2 | "TocExcludes": [ "NuGet package", "Release Notes", "Icon" ], 3 | "MaxWidth": 80 4 | } -------------------------------------------------------------------------------- /src/Images/desiredoutput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonCropp/SetStartupProjects/HEAD/src/Images/desiredoutput.png -------------------------------------------------------------------------------- /src/Images/encodingtest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonCropp/SetStartupProjects/HEAD/src/Images/encodingtest.png -------------------------------------------------------------------------------- /src/Images/enablemultistart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonCropp/SetStartupProjects/HEAD/src/Images/enablemultistart.png -------------------------------------------------------------------------------- /src/Images/startprojectformat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonCropp/SetStartupProjects/HEAD/src/Images/startprojectformat.png -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryCS/Class1.cs: -------------------------------------------------------------------------------- 1 | namespace ClassLibrary 2 | { 3 | public class Class1 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryFS/Library1.fs: -------------------------------------------------------------------------------- 1 | namespace ClassLibraryFS 2 | 3 | type Class1() = 4 | member this.X = "F#" 5 | -------------------------------------------------------------------------------- /src/Tests/GlobalUsings.cs: -------------------------------------------------------------------------------- 1 | global using System.Xml.Linq; 2 | global using SetStartupProjects; 3 | global using VerifyTests.DiffPlex; -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationVB/Module1.vb: -------------------------------------------------------------------------------- 1 | Module Module1 2 | 3 | Sub Main() 4 | 5 | End Sub 6 | 7 | End Module 8 | -------------------------------------------------------------------------------- /src/Images/structuredstorageexplorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonCropp/SetStartupProjects/HEAD/src/Images/structuredstorageexplorer.png -------------------------------------------------------------------------------- /src/global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "10.0.101", 4 | "allowPrerelease": true, 5 | "rollForward": "latestFeature" 6 | } 7 | } -------------------------------------------------------------------------------- /src/SetStartupProjects/Solution2017.suotemplate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonCropp/SetStartupProjects/HEAD/src/SetStartupProjects/Solution2017.suotemplate -------------------------------------------------------------------------------- /src/SetStartupProjects/Solution2019.suotemplate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonCropp/SetStartupProjects/HEAD/src/SetStartupProjects/Solution2019.suotemplate -------------------------------------------------------------------------------- /src/SetStartupProjects/Solution2022.suotemplate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonCropp/SetStartupProjects/HEAD/src/SetStartupProjects/Solution2022.suotemplate -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: nuget 4 | directory: "/src" 5 | schedule: 6 | interval: daily 7 | open-pull-requests-limit: 10 8 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationCS/Program.cs: -------------------------------------------------------------------------------- 1 | namespace ConsoleApplication1 2 | { 3 | class Program 4 | { 5 | static void Main() 6 | { 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationVB/Application.xaml.vb: -------------------------------------------------------------------------------- 1 | Class Application 2 | 3 | ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException 4 | ' can be handled in this file. 5 | 6 | End Class 7 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationCS/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationVB/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationFS/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationVB/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationVB/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationCS/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationFS/Program.fs: -------------------------------------------------------------------------------- 1 | // Learn more about F# at http://fsharp.net 2 | // See the 'F# Tutorial' project for more help. 3 | 4 | [] 5 | let main argv = 6 | printfn "%A" argv 7 | 0 // return an integer exit code 8 | -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryFS/Script.fsx: -------------------------------------------------------------------------------- 1 | // Learn more about F# at http://fsharp.net. See the 'F# Tutorial' project 2 | // for more guidance on F# programming. 3 | 4 | #load "Library1.fs" 5 | open ClassLibraryFS 6 | 7 | // Define your library scripting code here 8 | 9 | -------------------------------------------------------------------------------- /src/Tests/ModuleInitializer.cs: -------------------------------------------------------------------------------- 1 | public static class ModuleInitializer 2 | { 3 | [ModuleInitializer] 4 | public static void Initialize() 5 | { 6 | VerifyDiffPlex.Initialize(OutputType.Compact); 7 | VerifierSettings.InitializePlugins(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/SampleSolution/AzureCloudService/ServiceDefinition.csdef: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationCS/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/SetStartupProjects/Project.cs: -------------------------------------------------------------------------------- 1 | namespace SetStartupProjects; 2 | 3 | public class Project(string fullPath, string relativePath, string guid) 4 | { 5 | public readonly string Guid = guid; 6 | public readonly string RelativePath = relativePath; 7 | public readonly string FullPath = fullPath; 8 | } -------------------------------------------------------------------------------- /src/Tests/WebApplication_websdk.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/SampleSolution/AzureCloudService/ServiceConfiguration.Cloud.cscfg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/SampleSolution/AzureCloudService/ServiceConfiguration.Local.cscfg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationVB/MainWindow.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationCS/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationVB/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryVB/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationVB/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationCS/MainWindow.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationVB/Application.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationVB/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationVB/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationCS/App.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationCS/Web.config: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/SetStartupProjects/Resource.cs: -------------------------------------------------------------------------------- 1 | static class Resource 2 | { 3 | static Assembly assembly = typeof(Resource).Assembly; 4 | 5 | public static MemoryStream AsStream(string name) 6 | { 7 | using var stream = assembly.GetManifestResourceStream($"SetStartupProjects.{name}")!; 8 | var memoryStream = new MemoryStream(); 9 | stream.CopyTo(memoryStream); 10 | return memoryStream; 11 | } 12 | } -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationCS/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | 9 | namespace WpfApplicationCS 10 | { 11 | /// 12 | /// Interaction logic for App.xaml 13 | /// 14 | public partial class App : Application 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.github/workflows/merge-dependabot.yml: -------------------------------------------------------------------------------- 1 | name: merge-dependabot 2 | on: 3 | pull_request: 4 | jobs: 5 | automerge: 6 | runs-on: ubuntu-latest 7 | if: github.actor == 'dependabot[bot]' 8 | steps: 9 | - name: Dependabot Auto Merge 10 | uses: ahmadnassri/action-dependabot-auto-merge@v2.6.6 11 | with: 12 | target: minor 13 | github-token: ${{ secrets.dependabot }} 14 | command: squash and merge -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationVB/Web.config: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/.gitattributes: -------------------------------------------------------------------------------- 1 | * text 2 | *.suotemplate binary 3 | *.png binary 4 | *.snk binary 5 | 6 | 7 | *.verified.txt text eol=lf working-tree-encoding=UTF-8 8 | *.verified.xml text eol=lf working-tree-encoding=UTF-8 9 | *.verified.json text eol=lf working-tree-encoding=UTF-8 10 | 11 | .editorconfig text eol=lf working-tree-encoding=UTF-8 12 | *.sln.DotSettings text eol=lf working-tree-encoding=UTF-8 13 | *.slnx.DotSettings text eol=lf working-tree-encoding=UTF-8 -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationVB/My Project/Application.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' 5 | ' Changes to this file may cause incorrect behavior and will be lost if 6 | ' the code is regenerated. 7 | ' 8 | '------------------------------------------------------------------------------ 9 | 10 | Option Strict On 11 | Option Explicit On 12 | 13 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationCS/Form1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace WindowsFormsApplicationCS 12 | { 13 | public partial class Form1 : Form 14 | { 15 | public Form1() 16 | { 17 | InitializeComponent(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryVB/My Project/Application.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationVB/My Project/Application.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryVB/My Project/Application.myapp: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | false 5 | 0 6 | true 7 | 0 8 | 1 9 | true 10 | 11 | -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationVB/My Project/Application.myapp: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | false 5 | 0 6 | true 7 | 0 8 | 1 9 | true 10 | 11 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationVB/My Project/Application.myapp: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | false 5 | 0 6 | true 7 | 0 8 | 2 9 | true 10 | 11 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationVB/My Project/Application.myapp: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | Form1 5 | false 6 | 0 7 | true 8 | 0 9 | 0 10 | true 11 | 12 | -------------------------------------------------------------------------------- /src/Tests/SolutionProjectExtractorTests.cs: -------------------------------------------------------------------------------- 1 | public class SolutionProjectExtractorTests 2 | { 3 | [Fact] 4 | public Task GetAllProjectFiles() 5 | { 6 | var files = SolutionProjectExtractor.GetAllProjectFiles("SampleSolution.txt"); 7 | var toVerify = files.Select(_ => 8 | new 9 | { 10 | _.Guid, 11 | _.RelativePath, 12 | FullPath = new FileInfo(_.FullPath), 13 | }); 14 | 15 | var settings = new VerifySettings(); 16 | settings.UniqueForOSPlatform(); 17 | 18 | return Verify(toVerify, settings); 19 | } 20 | } -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationCS/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace WindowsFormsApplicationCS 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// The main entry point for the application. 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new Form1()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/SetStartupProjects.slnx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/SetStartupProjects/XmlExtensions.cs: -------------------------------------------------------------------------------- 1 | static class XmlExtensions 2 | { 3 | public static void StripNamespace(this XDocument document) 4 | { 5 | if (document.Root == null) 6 | { 7 | return; 8 | } 9 | 10 | foreach (var element in document.Root.DescendantsAndSelf()) 11 | { 12 | element.Name = element.Name.LocalName; 13 | element.ReplaceAttributes(GetAttributes(element)); 14 | } 15 | } 16 | 17 | static IEnumerable GetAttributes(XElement element) => 18 | element.Attributes() 19 | .Where(_ => !_.IsNamespaceDeclaration) 20 | .Select(_ => new XAttribute(_.Name.LocalName, _.Value)); 21 | } -------------------------------------------------------------------------------- /src/Tests/Samples.cs: -------------------------------------------------------------------------------- 1 | class Samples 2 | { 3 | static void GuessStartupProjects(string solutionFilePath) 4 | { 5 | var startupProjectGuids = StartProjectFinder.GetStartProjects(solutionFilePath) 6 | .ToList(); 7 | StartProjectSuoCreator.CreateForSolutionFile(solutionFilePath, startupProjectGuids); 8 | } 9 | 10 | static void PassGuids(string solutionFilePath) 11 | { 12 | var startupProjectGuids = new List 13 | { 14 | "11111111-1111-1111-1111-111111111111", 15 | "22222222-2222-2222-2222-222222222222" 16 | }; 17 | StartProjectSuoCreator.CreateForSolutionFile(solutionFilePath, startupProjectGuids); 18 | } 19 | } -------------------------------------------------------------------------------- /src/Tests/OutputType_Conditional_Exe.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net461;netcoreapp2.0 5 | 6 | 7 | net461 8 | 9 | 10 | Exe 11 | 7.1 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | preview 6 | false 7 | NU1608 8 | 3.0.0 9 | 1.0.0 10 | true 11 | embedded 12 | true 13 | true 14 | true 15 | true 16 | true 17 | 18 | -------------------------------------------------------------------------------- /src/SetStartupProjects/VisualStudioVersions.cs: -------------------------------------------------------------------------------- 1 | namespace SetStartupProjects; 2 | 3 | /// 4 | /// What versions of Visual Studio to target for .suo creation. 5 | /// 6 | [Flags] 7 | public enum VisualStudioVersions 8 | { 9 | /// 10 | /// Target suo creation for Visual Studio 2017. 11 | /// 12 | Vs2017 = 8, 13 | /// 14 | /// Target suo creation for Visual Studio 2019. 15 | /// 16 | Vs2019 = 16, 17 | /// 18 | /// Target suo creation for Visual Studio 2022. 19 | /// 20 | Vs2022 = 32, 21 | /// 22 | /// Target suo creation for Visual Studio versions 2012, 2013, 2015, 2017, 2019, and 2022. 23 | /// 24 | All = Vs2017 | Vs2019 | Vs2022, 25 | } -------------------------------------------------------------------------------- /src/SetStartupProjects/SetStartupProjects.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0;net9.0 5 | Simon Cropp 6 | Hacks a Visual Studio .suo file to set multiple startup projects. 7 | SUO, Visual Studio, Startup 8 | CS1591 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationCS/MainWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Navigation; 14 | using System.Windows.Shapes; 15 | 16 | namespace WpfApplicationCS 17 | { 18 | /// 19 | /// Interaction logic for MainWindow.xaml 20 | /// 21 | public partial class MainWindow : Window 22 | { 23 | public MainWindow() 24 | { 25 | InitializeComponent(); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /.github/workflows/on-push-do-doco.yml: -------------------------------------------------------------------------------- 1 | name: on-push-do-doco 2 | on: 3 | push: 4 | jobs: 5 | release: 6 | runs-on: windows-latest 7 | steps: 8 | - uses: actions/checkout@v4 9 | - name: Run MarkdownSnippets 10 | run: | 11 | dotnet tool install --global MarkdownSnippets.Tool 12 | mdsnippets ${GITHUB_WORKSPACE} 13 | shell: bash 14 | - name: Push changes 15 | run: | 16 | git config --local user.email "action@github.com" 17 | git config --local user.name "GitHub Action" 18 | git commit -m "Doco changes" -a || echo "nothing to commit" 19 | remote="https://${GITHUB_ACTOR}:${{secrets.GITHUB_TOKEN}}@github.com/${GITHUB_REPOSITORY}.git" 20 | branch="${GITHUB_REF:11}" 21 | git push "${remote}" ${branch} || echo "nothing to push" 22 | shell: bash -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 7 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 7 5 | # Set to true to ignore issues in a milestone (defaults to false) 6 | exemptMilestones: true 7 | # Comment to post when marking an issue as stale. Set to `false` to disable 8 | markComment: > 9 | This issue has been automatically marked as stale because it has not had 10 | recent activity. It will be closed if no further activity occurs. Thank you 11 | for your contributions. 12 | # Comment to post when closing a stale issue. Set to `false` to disable 13 | closeComment: false 14 | # Optionally, specify configuration settings that are specific to just 'issues' or 'pulls': 15 | pulls: 16 | daysUntilStale: 30 17 | exemptLabels: 18 | - Question 19 | - Bug 20 | - Feature 21 | - Improvement -------------------------------------------------------------------------------- /src/SetStartupProjects.slnx.DotSettings: -------------------------------------------------------------------------------- 1 | 2 | ..\Shared.sln.DotSettings 3 | True 4 | True 5 | 1 6 | -------------------------------------------------------------------------------- /src/Tests/OutputType_Exe.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | AnyCPU 6 | 8.0.30703 7 | 2.0 8 | {D04CF1FC-C4C0-4959-A817-2BC68770CA9B} 9 | Exe 10 | Properties 11 | Sender 12 | Sender 13 | v4.5 14 | 512 15 | ..\ 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/Tests/OutputType_Lib.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | AnyCPU 6 | 8.0.30703 7 | 2.0 8 | {D04CF1FC-C4C0-4959-A817-2BC68770CA9B} 9 | Library 10 | Properties 11 | Sender 12 | Sender 13 | v4.5 14 | 512 15 | ..\ 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/Tests/Lower_Include.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | AnyCPU 6 | 8.0.30703 7 | 2.0 8 | {D04CF1FC-C4C0-4959-A817-2BC68770CA9B} 9 | {349c5851-65df-11da-9384-00065b846f21} 10 | Library 11 | Properties 12 | Sender 13 | Sender 14 | v4.5 15 | 512 16 | ..\ 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/Directory.Packages.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | true 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/Tests/Multiple_Exclude.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | AnyCPU 6 | 8.0.30703 7 | 2.0 8 | {D04CF1FC-C4C0-4959-A817-2BC68770CA9B} 9 | {8BB0C5E8-0616-4F60-8E55-A43933E57E9C};{581633EB-B896-402F-8E60-36F3DA191C85} 10 | Library 11 | Properties 12 | Sender 13 | Sender 14 | v4.5 15 | 512 16 | ..\ 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/Tests/Multiple_Include.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | AnyCPU 6 | 8.0.30703 7 | 2.0 8 | {D04CF1FC-C4C0-4959-A817-2BC68770CA9B} 9 | {8BB0C5E8-0616-4F60-8E55-A43933E57E9C};{F85E285D-A4E0-4152-9332-AB1D724D3325} 10 | Library 11 | Properties 12 | Sender 13 | Sender 14 | v4.5 15 | 512 16 | ..\ 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/Tests/StartActionIsProgram.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | AnyCPU 6 | 8.0.30703 7 | 2.0 8 | {D04CF1FC-C4C0-4959-A817-2BC68770CA9B} 9 | Library 10 | Properties 11 | Sender 12 | Sender 13 | v4.5 14 | 512 15 | ..\ 16 | 17 | 18 | 19 | Program 20 | $(ProjectDir)$(OutputPath)NServiceBus.Host.exe 21 | 22 | -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Simon Cropp 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /src/nuget.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 20 | 21 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/appveyor.yml: -------------------------------------------------------------------------------- 1 | image: 2 | - Visual Studio 2022 3 | - macOS 4 | #- Ubuntu 5 | environment: 6 | DOTNET_NOLOGO: 1 7 | DOTNET_CLI_TELEMETRY_OPTOUT: true 8 | DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true 9 | build_script: 10 | - pwsh: | 11 | if ($isWindows) { 12 | Invoke-WebRequest "https://dot.net/v1/dotnet-install.ps1" -OutFile "./dotnet-install.ps1" 13 | ./dotnet-install.ps1 -JSonFile src/global.json -Architecture x64 -InstallDir 'C:\Program Files\dotnet' 14 | } 15 | else { 16 | Invoke-WebRequest "https://dot.net/v1/dotnet-install.sh" -OutFile "./dotnet-install.sh" 17 | sudo chmod u+x dotnet-install.sh 18 | if ($isMacOS) { 19 | sudo ./dotnet-install.sh --jsonfile src/global.json --architecture x64 --install-dir '/usr/local/share/dotnet' 20 | } else { 21 | sudo ./dotnet-install.sh --jsonfile src/global.json --architecture x64 --install-dir '/usr/share/dotnet' 22 | } 23 | } 24 | - dotnet build src --configuration Release 25 | - dotnet test src --configuration Release --no-build --no-restore 26 | on_failure: 27 | - ps: Get-ChildItem *.received.* -recurse | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name } 28 | test: off 29 | artifacts: 30 | - path: nugets\*.nupkg -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationVB/Form1.Designer.vb: -------------------------------------------------------------------------------- 1 | _ 2 | Partial Class Form1 3 | Inherits System.Windows.Forms.Form 4 | 5 | 'Form overrides dispose to clean up the component list. 6 | _ 7 | Protected Overrides Sub Dispose(ByVal disposing As Boolean) 8 | Try 9 | If disposing AndAlso components IsNot Nothing Then 10 | components.Dispose() 11 | End If 12 | Finally 13 | MyBase.Dispose(disposing) 14 | End Try 15 | End Sub 16 | 17 | 'Required by the Windows Form Designer 18 | Private components As System.ComponentModel.IContainer 19 | 20 | 'NOTE: The following procedure is required by the Windows Form Designer 21 | 'It can be modified using the Windows Form Designer. 22 | 'Do not modify it using the code editor. 23 | _ 24 | Private Sub InitializeComponent() 25 | components = New System.ComponentModel.Container() 26 | Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font 27 | Me.Text = "Form1" 28 | End Sub 29 | 30 | End Class 31 | -------------------------------------------------------------------------------- /src/Tests/SimpleSolutionWithDefault/SimpleSolution.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.31101.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary", "ClassLibrary\ClassLibrary.csproj", "{11111111-1111-1111-1111-111111111111}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApplication", "ConsoleApplication\ConsoleApplication.csproj", "{22222222-2222-2222-2222-222222222222}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Any CPU = Debug|Any CPU 13 | EndGlobalSection 14 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 15 | {11111111-1111-1111-1111-111111111111}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 16 | {11111111-1111-1111-1111-111111111111}.Debug|Any CPU.Build.0 = Debug|Any CPU 17 | {22222222-2222-2222-2222-222222222222}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 18 | {22222222-2222-2222-2222-222222222222}.Debug|Any CPU.Build.0 = Debug|Any CPU 19 | EndGlobalSection 20 | GlobalSection(SolutionProperties) = preSolution 21 | HideSolutionNode = FALSE 22 | EndGlobalSection 23 | EndGlobal 24 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationCS/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.0 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace WpfApplicationCS.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationCS/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.0 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace WindowsFormsApplicationCS.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Tests/WebApplication_xproj.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14.0 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | f07652eb-7fea-4e52-8e77-09e16058b609 10 | WebApplication 11 | .\obj 12 | .\bin\ 13 | v4.5.2 14 | 15 | 16 | 2.0 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryVB/My Project/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/SampleSolution/WebApplicationVB/My Project/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 | 'The following GUID is for the ID of the typelib if this project is exposed to COM 20 | 21 | 22 | ' Version information for an assembly consists of the following four values: 23 | ' 24 | ' Major Version 25 | ' Minor Version 26 | ' Build Number 27 | ' Revision 28 | ' 29 | ' You can specify all the values or you can default the Build and Revision Numbers 30 | ' by using the '*' as shown below: 31 | ' 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationVB/My Project/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/SampleSolution/WindowsFormsApplicationCS/Form1.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace WindowsFormsApplicationCS 2 | { 3 | partial class Form1 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.components = new System.ComponentModel.Container(); 32 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 33 | this.Text = "Form1"; 34 | } 35 | 36 | #endregion 37 | } 38 | } 39 | 40 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationVB/My Project/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/SampleSolution/WebApplicationCS/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationVB/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationCS/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationVB/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /src/SetStartupProjects/SolutionProjectExtractor.cs: -------------------------------------------------------------------------------- 1 | namespace SetStartupProjects; 2 | 3 | /// 4 | /// Helper that extracts all the project paths and guids from a solution. 5 | /// 6 | public static class SolutionProjectExtractor 7 | { 8 | public static IEnumerable GetAllProjectFiles(string solutionFile) 9 | { 10 | Ensure.FileExists(solutionFile, nameof(solutionFile)); 11 | var solutionDirectory = Path.GetDirectoryName(solutionFile)!; 12 | foreach (var line in File.ReadAllLines(solutionFile)) 13 | { 14 | if (!line.StartsWith("Project(")) 15 | { 16 | continue; 17 | } 18 | var strings = line.Split(["\", \""], StringSplitOptions.RemoveEmptyEntries); 19 | var guidType = strings[0].Split('{', '}')[1]; 20 | var guid = strings[2].Trim('{', '}', '"'); 21 | var relativePath = Path.DirectorySeparatorChar == '\\' ? strings[1] : strings[1].Replace('\\', Path.DirectorySeparatorChar); 22 | var fullPath = Path.GetFullPath(Path.Combine(solutionDirectory, relativePath)); 23 | if (guidType == "2150E333-8FDC-42A3-9474-1A3956D46DE8") 24 | { 25 | //this is a Solution Folder and can be ignored 26 | continue; 27 | } 28 | yield return new( 29 | fullPath: fullPath, 30 | relativePath: relativePath, 31 | guid: guid 32 | ); 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: How to raise feature requests 4 | --- 5 | 6 | 7 | Note: New issues raised, where it is clear the submitter has not read the issue template, are likely to be closed with "please read the issue template". Please don't take offense at this. It is simply a time management decision. If someone raises an issue, and can't be bothered to spend the time to read the issue template, then the project maintainers should not be expected to spend the time to read the submitted issue. Often too much time is spent going back and forth in issue comments asking for information that is outlined in the issue template. 8 | 9 | If you are certain the feature will be accepted, it is better to raise a [Pull Request (PR)](https://help.github.com/articles/about-pull-requests/). 10 | 11 | If you are uncertain if the feature will be accepted, outline the proposal below to confirm it is viable, prior to raising a PR that implements the feature. 12 | 13 | Note that even if the feature is a good idea and viable, it may not be accepted since the ongoing effort in maintaining the feature may outweigh the benefit it delivers. 14 | 15 | 16 | #### Is the feature request related to a problem 17 | 18 | A clear and concise description of what the problem is. 19 | 20 | 21 | #### Describe the solution 22 | 23 | A clear and concise proposal of how you intend to implement the feature. 24 | 25 | 26 | #### Describe alternatives considered 27 | 28 | A clear and concise description of any alternative solutions or features you've considered. 29 | 30 | 31 | #### Additional context 32 | 33 | Add any other context about the feature request here. 34 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationVB/My Project/Application.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My 16 | 17 | 'NOTE: This file is auto-generated; do not modify it directly. To make changes, 18 | ' or if you encounter build errors in this file, go to the Project Designer 19 | ' (go to Project Properties or double-click the My Project node in 20 | ' Solution Explorer), and make changes on the Application tab. 21 | ' 22 | Partial Friend Class MyApplication 23 | 24 | _ 25 | Public Sub New() 26 | MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) 27 | Me.IsSingleInstance = false 28 | Me.EnableVisualStyles = true 29 | Me.SaveMySettingsOnExit = true 30 | Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses 31 | End Sub 32 | 33 | _ 34 | Protected Overrides Sub OnCreateMainForm() 35 | Me.MainForm = Global.WindowsFormsApplicationVB.Form1 36 | End Sub 37 | End Class 38 | End Namespace 39 | -------------------------------------------------------------------------------- /src/Tests/SimpleSolutionWithDefault/ClassLibrary/ClassLibrary.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {11111111-1111-1111-1111-111111111111} 8 | Library 9 | Properties 10 | ClassLibrary 11 | ClassLibrary 12 | v4.5 13 | 512 14 | 15 | 16 | true 17 | full 18 | false 19 | bin\Debug\ 20 | DEBUG;TRACE 21 | prompt 22 | 4 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/Tests/SimpleSolutionWithDefault/ConsoleApplication/ConsoleApplication.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {22222222-2222-2222-2222-222222222222} 8 | Exe 9 | Properties 10 | ConsoleApplication 11 | ConsoleApplication 12 | v4.5 13 | 512 14 | 15 | 16 | AnyCPU 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | DEBUG;TRACE 22 | prompt 23 | 4 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug fix 3 | about: Create a bug fix to help us improve 4 | --- 5 | 6 | Note: New issues raised, where it is clear the submitter has not read the issue template, are likely to be closed with "please read the issue template". Please don't take offense at this. It is simply a time management decision. If someone raises an issue, and can't be bothered to spend the time to read the issue template, then the project maintainers should not be expected to spend the time to read the submitted issue. Often too much time is spent going back and forth in issue comments asking for information that is outlined in the issue template. 7 | 8 | 9 | #### Preamble 10 | 11 | General questions may be better placed [StackOveflow](https://stackoverflow.com/). 12 | 13 | Where relevant, ensure you are using the current stable versions on your development stack. For example: 14 | 15 | * Visual Studio 16 | * [.NET SDK or .NET Core SDK](https://www.microsoft.com/net/download) 17 | * Any related NuGet packages 18 | 19 | Any code or stack traces must be properly formatted with [GitHub markdown](https://guides.github.com/features/mastering-markdown/). 20 | 21 | 22 | #### Describe the bug 23 | 24 | A clear and concise description of what the bug is. Include any relevant version information. 25 | 26 | A clear and concise description of what you expected to happen. 27 | 28 | Add any other context about the problem here. 29 | 30 | 31 | #### Minimal Repro 32 | 33 | Ensure you have replicated the bug in a minimal solution with the fewest moving parts. Often this will help point to the true cause of the problem. Upload this repro as part of the issue, preferably a public GitHub repository or a downloadable zip. The repro will allow the maintainers of this project to smoke test the any fix. 34 | 35 | #### Submit a PR that fixes the bug 36 | 37 | Submit a [Pull Request (PR)](https://help.github.com/articles/about-pull-requests/) that fixes the bug. Include in this PR a test that verifies the fix. If you were not able to fix the bug, a PR that illustrates your partial progress will suffice. -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryCS/ClassLibraryCS.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {99999999-9999-9999-9999-999999999999} 8 | Library 9 | Properties 10 | ClassLibraryCS 11 | ClassLibraryCS 12 | v4.5 13 | 512 14 | 15 | 16 | true 17 | full 18 | false 19 | bin\Debug\ 20 | DEBUG;TRACE 21 | prompt 22 | 4 23 | 24 | 25 | pdbonly 26 | true 27 | bin\Release\ 28 | TRACE 29 | prompt 30 | 4 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationCS/ConsoleApplicationCS.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {11111111-1111-1111-1111-111111111111} 8 | Exe 9 | Properties 10 | ConsoleApplicationCS 11 | ConsoleApplicationCS 12 | v4.5 13 | 512 14 | 15 | 16 | AnyCPU 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | DEBUG;TRACE 22 | prompt 23 | 4 24 | 25 | 26 | AnyCPU 27 | pdbonly 28 | true 29 | bin\Release\ 30 | TRACE 31 | prompt 32 | 4 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /src/Tests/SolutionProjectExtractorTests.GetAllProjectFiles.OSX.verified.txt: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | Guid: Guid_1, 4 | RelativePath: ClassLibraryCS/ClassLibraryCS.csproj, 5 | FullPath: {CurrentDirectory}ClassLibraryCS/ClassLibraryCS.csproj 6 | }, 7 | { 8 | Guid: Guid_2, 9 | RelativePath: ConsoleApplicationCS/ConsoleApplicationCS.csproj, 10 | FullPath: {CurrentDirectory}ConsoleApplicationCS/ConsoleApplicationCS.csproj 11 | }, 12 | { 13 | Guid: Guid_3, 14 | RelativePath: ClassLibraryVB/ClassLibraryVB.vbproj, 15 | FullPath: {CurrentDirectory}ClassLibraryVB/ClassLibraryVB.vbproj 16 | }, 17 | { 18 | Guid: Guid_4, 19 | RelativePath: ConsoleApplicationVB/ConsoleApplicationVB.vbproj, 20 | FullPath: {CurrentDirectory}ConsoleApplicationVB/ConsoleApplicationVB.vbproj 21 | }, 22 | { 23 | Guid: Guid_5, 24 | RelativePath: ConsoleApplicationFS/ConsoleApplicationFS.fsproj, 25 | FullPath: {CurrentDirectory}ConsoleApplicationFS/ConsoleApplicationFS.fsproj 26 | }, 27 | { 28 | Guid: Guid_6, 29 | RelativePath: WpfApplicationVB/WpfApplicationVB.vbproj, 30 | FullPath: {CurrentDirectory}WpfApplicationVB/WpfApplicationVB.vbproj 31 | }, 32 | { 33 | Guid: Guid_7, 34 | RelativePath: WpfApplicationCS/WpfApplicationCS.csproj, 35 | FullPath: {CurrentDirectory}WpfApplicationCS/WpfApplicationCS.csproj 36 | }, 37 | { 38 | Guid: Guid_8, 39 | RelativePath: WindowsFormsApplicationCS/WindowsFormsApplicationCS.csproj, 40 | FullPath: {CurrentDirectory}WindowsFormsApplicationCS/WindowsFormsApplicationCS.csproj 41 | }, 42 | { 43 | Guid: Guid_9, 44 | RelativePath: WindowsFormsApplicationVB/WindowsFormsApplicationVB.vbproj, 45 | FullPath: {CurrentDirectory}WindowsFormsApplicationVB/WindowsFormsApplicationVB.vbproj 46 | }, 47 | { 48 | Guid: Guid_10, 49 | RelativePath: WebApplicationVB/WebApplicationVB.vbproj, 50 | FullPath: {CurrentDirectory}WebApplicationVB/WebApplicationVB.vbproj 51 | }, 52 | { 53 | Guid: Guid_11, 54 | RelativePath: WebApplicationCS/WebApplicationCS.csproj, 55 | FullPath: {CurrentDirectory}WebApplicationCS/WebApplicationCS.csproj 56 | }, 57 | { 58 | Guid: Guid_12, 59 | RelativePath: ClassLibraryFS/ClassLibraryFS.fsproj, 60 | FullPath: {CurrentDirectory}ClassLibraryFS/ClassLibraryFS.fsproj 61 | }, 62 | { 63 | Guid: Guid_13, 64 | RelativePath: AzureCloudService/AzureCloudService.ccproj, 65 | FullPath: {CurrentDirectory}AzureCloudService/AzureCloudService.ccproj 66 | } 67 | ] -------------------------------------------------------------------------------- /src/Tests/SolutionProjectExtractorTests.GetAllProjectFiles.Windows.verified.txt: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | Guid: Guid_1, 4 | RelativePath: ClassLibraryCS\ClassLibraryCS.csproj, 5 | FullPath: {CurrentDirectory}ClassLibraryCS/ClassLibraryCS.csproj 6 | }, 7 | { 8 | Guid: Guid_2, 9 | RelativePath: ConsoleApplicationCS\ConsoleApplicationCS.csproj, 10 | FullPath: {CurrentDirectory}ConsoleApplicationCS/ConsoleApplicationCS.csproj 11 | }, 12 | { 13 | Guid: Guid_3, 14 | RelativePath: ClassLibraryVB\ClassLibraryVB.vbproj, 15 | FullPath: {CurrentDirectory}ClassLibraryVB/ClassLibraryVB.vbproj 16 | }, 17 | { 18 | Guid: Guid_4, 19 | RelativePath: ConsoleApplicationVB\ConsoleApplicationVB.vbproj, 20 | FullPath: {CurrentDirectory}ConsoleApplicationVB/ConsoleApplicationVB.vbproj 21 | }, 22 | { 23 | Guid: Guid_5, 24 | RelativePath: ConsoleApplicationFS\ConsoleApplicationFS.fsproj, 25 | FullPath: {CurrentDirectory}ConsoleApplicationFS/ConsoleApplicationFS.fsproj 26 | }, 27 | { 28 | Guid: Guid_6, 29 | RelativePath: WpfApplicationVB\WpfApplicationVB.vbproj, 30 | FullPath: {CurrentDirectory}WpfApplicationVB/WpfApplicationVB.vbproj 31 | }, 32 | { 33 | Guid: Guid_7, 34 | RelativePath: WpfApplicationCS\WpfApplicationCS.csproj, 35 | FullPath: {CurrentDirectory}WpfApplicationCS/WpfApplicationCS.csproj 36 | }, 37 | { 38 | Guid: Guid_8, 39 | RelativePath: WindowsFormsApplicationCS\WindowsFormsApplicationCS.csproj, 40 | FullPath: {CurrentDirectory}WindowsFormsApplicationCS/WindowsFormsApplicationCS.csproj 41 | }, 42 | { 43 | Guid: Guid_9, 44 | RelativePath: WindowsFormsApplicationVB\WindowsFormsApplicationVB.vbproj, 45 | FullPath: {CurrentDirectory}WindowsFormsApplicationVB/WindowsFormsApplicationVB.vbproj 46 | }, 47 | { 48 | Guid: Guid_10, 49 | RelativePath: WebApplicationVB\WebApplicationVB.vbproj, 50 | FullPath: {CurrentDirectory}WebApplicationVB/WebApplicationVB.vbproj 51 | }, 52 | { 53 | Guid: Guid_11, 54 | RelativePath: WebApplicationCS\WebApplicationCS.csproj, 55 | FullPath: {CurrentDirectory}WebApplicationCS/WebApplicationCS.csproj 56 | }, 57 | { 58 | Guid: Guid_12, 59 | RelativePath: ClassLibraryFS\ClassLibraryFS.fsproj, 60 | FullPath: {CurrentDirectory}ClassLibraryFS/ClassLibraryFS.fsproj 61 | }, 62 | { 63 | Guid: Guid_13, 64 | RelativePath: AzureCloudService\AzureCloudService.ccproj, 65 | FullPath: {CurrentDirectory}AzureCloudService/AzureCloudService.ccproj 66 | } 67 | ] -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationVB/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Reflection 3 | Imports System.Runtime.InteropServices 4 | Imports System.Globalization 5 | Imports System.Resources 6 | Imports System.Windows 7 | 8 | ' General Information about an assembly is controlled through the following 9 | ' set of attributes. Change these attribute values to modify the information 10 | ' associated with an assembly. 11 | 12 | ' Review the values of the assembly attributes 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 'In order to begin building localizable applications, set 23 | 'CultureYouAreCodingWith in your .vbproj file 24 | 'inside a . For example, if you are using US english 25 | 'in your source files, set the to "en-US". Then uncomment the 26 | 'NeutralResourceLanguage attribute below. Update the "en-US" in the line 27 | 'below to match the UICulture setting in the project file. 28 | 29 | ' 30 | 31 | 32 | 'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. 33 | '1st parameter: where theme specific resource dictionaries are located 34 | '(used if a resource is not found in the page, 35 | ' or application resource dictionaries) 36 | 37 | '2nd parameter: where the generic resource dictionary is located 38 | '(used if a resource is not found in the page, 39 | 'app, and any theme specific resource dictionaries) 40 | 41 | 42 | 43 | 44 | 'The following GUID is for the ID of the typelib if this project is exposed to COM 45 | 46 | 47 | ' Version information for an assembly consists of the following four values: 48 | ' 49 | ' Major Version 50 | ' Minor Version 51 | ' Build Number 52 | ' Revision 53 | ' 54 | ' You can specify all the values or you can default the Build and Revision Numbers 55 | ' by using the '*' as shown below: 56 | ' 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /src/SampleSolution/AzureCloudService/AzureCloudService.ccproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | 2.7 8 | c188fcea-c469-4b03-b39e-dc092370f0ec 9 | Library 10 | Properties 11 | AzureCloudService 12 | AzureCloudService 13 | True 14 | AzureCloudService 15 | 16 | 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | DEBUG;TRACE 22 | prompt 23 | 4 24 | 25 | 26 | pdbonly 27 | true 28 | bin\Release\ 29 | TRACE 30 | prompt 31 | 4 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 10.0 42 | $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Windows Azure Tools\2.7\ 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationVB/My Project/Resources.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' 5 | ' Changes to this file may cause incorrect behavior and will be lost if 6 | ' the code is regenerated. 7 | ' 8 | '------------------------------------------------------------------------------ 9 | 10 | Option Strict On 11 | Option Explicit On 12 | 13 | 14 | Namespace My.Resources 15 | 16 | 'This class was auto-generated by the StronglyTypedResourceBuilder 17 | 'class via a tool like ResGen or Visual Studio. 18 | 'To add or remove a member, edit your .ResX file then rerun ResGen 19 | 'with the /str option, or rebuild your VS project. 20 | ' 21 | ' A strongly-typed resource class, for looking up localized strings, etc. 22 | ' 23 | _ 27 | Friend Module Resources 28 | 29 | Private resourceMan As Global.System.Resources.ResourceManager 30 | 31 | Private resourceCulture As Global.System.Globalization.CultureInfo 32 | 33 | ' 34 | ' Returns the cached ResourceManager instance used by this class. 35 | ' 36 | _ 37 | Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager 38 | Get 39 | If Object.ReferenceEquals(resourceMan, Nothing) Then 40 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("WebApplicationVB.Resources", GetType(Resources).Assembly) 41 | resourceMan = temp 42 | End If 43 | Return resourceMan 44 | End Get 45 | End Property 46 | 47 | ' 48 | ' Overrides the current thread's CurrentUICulture property for all 49 | ' resource lookups using this strongly typed resource class. 50 | ' 51 | _ 52 | Friend Property Culture() As Global.System.Globalization.CultureInfo 53 | Get 54 | Return resourceCulture 55 | End Get 56 | Set(ByVal value As Global.System.Globalization.CultureInfo) 57 | resourceCulture = value 58 | End Set 59 | End Property 60 | End Module 61 | End Namespace 62 | -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryVB/My Project/Resources.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My.Resources 16 | 17 | 'This class was auto-generated by the StronglyTypedResourceBuilder 18 | 'class via a tool like ResGen or Visual Studio. 19 | 'To add or remove a member, edit your .ResX file then rerun ResGen 20 | 'with the /str option, or rebuild your VS project. 21 | ''' 22 | ''' A strongly-typed resource class, for looking up localized strings, etc. 23 | ''' 24 | _ 28 | Friend Module Resources 29 | 30 | Private resourceMan As Global.System.Resources.ResourceManager 31 | 32 | Private resourceCulture As Global.System.Globalization.CultureInfo 33 | 34 | ''' 35 | ''' Returns the cached ResourceManager instance used by this class. 36 | ''' 37 | _ 38 | Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager 39 | Get 40 | If Object.ReferenceEquals(resourceMan, Nothing) Then 41 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ClassLibraryVB.Resources", GetType(Resources).Assembly) 42 | resourceMan = temp 43 | End If 44 | Return resourceMan 45 | End Get 46 | End Property 47 | 48 | ''' 49 | ''' Overrides the current thread's CurrentUICulture property for all 50 | ''' resource lookups using this strongly typed resource class. 51 | ''' 52 | _ 53 | Friend Property Culture() As Global.System.Globalization.CultureInfo 54 | Get 55 | Return resourceCulture 56 | End Get 57 | Set(ByVal value As Global.System.Globalization.CultureInfo) 58 | resourceCulture = value 59 | End Set 60 | End Property 61 | End Module 62 | End Namespace 63 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationVB/My Project/Resources.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:$clrversion$ 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My.Resources 16 | 17 | 'This class was auto-generated by the StronglyTypedResourceBuilder 18 | 'class via a tool like ResGen or Visual Studio. 19 | 'To add or remove a member, edit your .ResX file then rerun ResGen 20 | 'with the /str option, or rebuild your VS project. 21 | ''' 22 | ''' A strongly-typed resource class, for looking up localized strings, etc. 23 | ''' 24 | _ 28 | Friend Module Resources 29 | 30 | Private resourceMan As Global.System.Resources.ResourceManager 31 | 32 | Private resourceCulture As Global.System.Globalization.CultureInfo 33 | 34 | ''' 35 | ''' Returns the cached ResourceManager instance used by this class. 36 | ''' 37 | _ 38 | Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager 39 | Get 40 | If Object.ReferenceEquals(resourceMan, Nothing) Then 41 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) 42 | resourceMan = temp 43 | End If 44 | Return resourceMan 45 | End Get 46 | End Property 47 | 48 | ''' 49 | ''' Overrides the current thread's CurrentUICulture property for all 50 | ''' resource lookups using this strongly typed resource class. 51 | ''' 52 | _ 53 | Friend Property Culture() As Global.System.Globalization.CultureInfo 54 | Get 55 | Return resourceCulture 56 | End Get 57 | Set(ByVal value As Global.System.Globalization.CultureInfo) 58 | resourceCulture = value 59 | End Set 60 | End Property 61 | End Module 62 | End Namespace 63 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationVB/My Project/Resources.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My.Resources 16 | 17 | 'This class was auto-generated by the StronglyTypedResourceBuilder 18 | 'class via a tool like ResGen or Visual Studio. 19 | 'To add or remove a member, edit your .ResX file then rerun ResGen 20 | 'with the /str option, or rebuild your VS project. 21 | ''' 22 | ''' A strongly-typed resource class, for looking up localized strings, etc. 23 | ''' 24 | _ 28 | Friend Module Resources 29 | 30 | Private resourceMan As Global.System.Resources.ResourceManager 31 | 32 | Private resourceCulture As Global.System.Globalization.CultureInfo 33 | 34 | ''' 35 | ''' Returns the cached ResourceManager instance used by this class. 36 | ''' 37 | _ 38 | Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager 39 | Get 40 | If Object.ReferenceEquals(resourceMan, Nothing) Then 41 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ConsoleApplicationVB.Resources", GetType(Resources).Assembly) 42 | resourceMan = temp 43 | End If 44 | Return resourceMan 45 | End Get 46 | End Property 47 | 48 | ''' 49 | ''' Overrides the current thread's CurrentUICulture property for all 50 | ''' resource lookups using this strongly typed resource class. 51 | ''' 52 | _ 53 | Friend Property Culture() As Global.System.Globalization.CultureInfo 54 | Get 55 | Return resourceCulture 56 | End Get 57 | Set(ByVal value As Global.System.Globalization.CultureInfo) 58 | resourceCulture = value 59 | End Set 60 | End Property 61 | End Module 62 | End Namespace 63 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationVB/My Project/Resources.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My.Resources 16 | 17 | 'This class was auto-generated by the StronglyTypedResourceBuilder 18 | 'class via a tool like ResGen or Visual Studio. 19 | 'To add or remove a member, edit your .ResX file then rerun ResGen 20 | 'with the /str option, or rebuild your VS project. 21 | ''' 22 | ''' A strongly-typed resource class, for looking up localized strings, etc. 23 | ''' 24 | _ 28 | Friend Module Resources 29 | 30 | Private resourceMan As Global.System.Resources.ResourceManager 31 | 32 | Private resourceCulture As Global.System.Globalization.CultureInfo 33 | 34 | ''' 35 | ''' Returns the cached ResourceManager instance used by this class. 36 | ''' 37 | _ 38 | Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager 39 | Get 40 | If Object.ReferenceEquals(resourceMan, Nothing) Then 41 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("WindowsFormsApplicationVB.Resources", GetType(Resources).Assembly) 42 | resourceMan = temp 43 | End If 44 | Return resourceMan 45 | End Get 46 | End Property 47 | 48 | ''' 49 | ''' Overrides the current thread's CurrentUICulture property for all 50 | ''' resource lookups using this strongly typed resource class. 51 | ''' 52 | _ 53 | Friend Property Culture() As Global.System.Globalization.CultureInfo 54 | Get 55 | Return resourceCulture 56 | End Get 57 | Set(ByVal value As Global.System.Globalization.CultureInfo) 58 | resourceCulture = value 59 | End Set 60 | End Property 61 | End Module 62 | End Namespace 63 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationCS/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.0 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace WpfApplicationCS.Properties 12 | { 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources 26 | { 27 | 28 | private static global::System.Resources.ResourceManager resourceMan; 29 | 30 | private static global::System.Globalization.CultureInfo resourceCulture; 31 | 32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 33 | internal Resources() 34 | { 35 | } 36 | 37 | /// 38 | /// Returns the cached ResourceManager instance used by this class. 39 | /// 40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 41 | internal static global::System.Resources.ResourceManager ResourceManager 42 | { 43 | get 44 | { 45 | if ((resourceMan == null)) 46 | { 47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WpfApplicationCS.Properties.Resources", typeof(Resources).Assembly); 48 | resourceMan = temp; 49 | } 50 | return resourceMan; 51 | } 52 | } 53 | 54 | /// 55 | /// Overrides the current thread's CurrentUICulture property for all 56 | /// resource lookups using this strongly typed resource class. 57 | /// 58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 59 | internal static global::System.Globalization.CultureInfo Culture 60 | { 61 | get 62 | { 63 | return resourceCulture; 64 | } 65 | set 66 | { 67 | resourceCulture = value; 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationCS/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.0 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace WindowsFormsApplicationCS.Properties 12 | { 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources 26 | { 27 | 28 | private static global::System.Resources.ResourceManager resourceMan; 29 | 30 | private static global::System.Globalization.CultureInfo resourceCulture; 31 | 32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 33 | internal Resources() 34 | { 35 | } 36 | 37 | /// 38 | /// Returns the cached ResourceManager instance used by this class. 39 | /// 40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 41 | internal static global::System.Resources.ResourceManager ResourceManager 42 | { 43 | get 44 | { 45 | if ((resourceMan == null)) 46 | { 47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WindowsFormsApplicationCS.Properties.Resources", typeof(Resources).Assembly); 48 | resourceMan = temp; 49 | } 50 | return resourceMan; 51 | } 52 | } 53 | 54 | /// 55 | /// Overrides the current thread's CurrentUICulture property for all 56 | /// resource lookups using this strongly typed resource class. 57 | /// 58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 59 | internal static global::System.Globalization.CultureInfo Culture 60 | { 61 | get 62 | { 63 | return resourceCulture; 64 | } 65 | set 66 | { 67 | resourceCulture = value; 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationVB/My Project/Settings.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' 5 | ' Changes to this file may cause incorrect behavior and will be lost if 6 | ' the code is regenerated. 7 | ' 8 | '------------------------------------------------------------------------------ 9 | 10 | Option Strict On 11 | Option Explicit On 12 | 13 | 14 | Namespace My 15 | 16 | _ 19 | Partial Friend NotInheritable Class MySettings 20 | Inherits Global.System.Configuration.ApplicationSettingsBase 21 | 22 | Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) 23 | 24 | #Region "My.Settings Auto-Save Functionality" 25 | #If _MyType = "WindowsForms" Then 26 | Private Shared addedHandler As Boolean 27 | 28 | Private Shared addedHandlerLockObject As New Object 29 | 30 | _ 31 | Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) 32 | If My.Application.SaveMySettingsOnExit Then 33 | My.Settings.Save() 34 | End If 35 | End Sub 36 | #End If 37 | #End Region 38 | 39 | Public Shared ReadOnly Property [Default]() As MySettings 40 | Get 41 | 42 | #If _MyType = "WindowsForms" Then 43 | If Not addedHandler Then 44 | SyncLock addedHandlerLockObject 45 | If Not addedHandler Then 46 | AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings 47 | addedHandler = True 48 | End If 49 | End SyncLock 50 | End If 51 | #End If 52 | Return defaultInstance 53 | End Get 54 | End Property 55 | End Class 56 | End Namespace 57 | 58 | Namespace My 59 | 60 | _ 63 | Friend Module MySettingsProperty 64 | 65 | _ 66 | Friend ReadOnly Property Settings() As Global.WebApplicationVB.My.MySettings 67 | Get 68 | Return Global.WebApplicationVB.My.MySettings.Default 69 | End Get 70 | End Property 71 | End Module 72 | End Namespace -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationVB/My Project/Settings.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My 16 | 17 | _ 20 | Partial Friend NotInheritable Class MySettings 21 | Inherits Global.System.Configuration.ApplicationSettingsBase 22 | 23 | Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) 24 | 25 | #Region "My.Settings Auto-Save Functionality" 26 | #If _MyType = "WindowsForms" Then 27 | Private Shared addedHandler As Boolean 28 | 29 | Private Shared addedHandlerLockObject As New Object 30 | 31 | _ 32 | Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) 33 | If My.Application.SaveMySettingsOnExit Then 34 | My.Settings.Save() 35 | End If 36 | End Sub 37 | #End If 38 | #End Region 39 | 40 | Public Shared ReadOnly Property [Default]() As MySettings 41 | Get 42 | 43 | #If _MyType = "WindowsForms" Then 44 | If Not addedHandler Then 45 | SyncLock addedHandlerLockObject 46 | If Not addedHandler Then 47 | AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings 48 | addedHandler = True 49 | End If 50 | End SyncLock 51 | End If 52 | #End If 53 | Return defaultInstance 54 | End Get 55 | End Property 56 | End Class 57 | End Namespace 58 | 59 | Namespace My 60 | 61 | _ 64 | Friend Module MySettingsProperty 65 | 66 | _ 67 | Friend ReadOnly Property Settings() As Global.WpfApplicationVB.My.MySettings 68 | Get 69 | Return Global.WpfApplicationVB.My.MySettings.Default 70 | End Get 71 | End Property 72 | End Module 73 | End Namespace 74 | -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryVB/My Project/Settings.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My 16 | 17 | _ 20 | Partial Friend NotInheritable Class MySettings 21 | Inherits Global.System.Configuration.ApplicationSettingsBase 22 | 23 | Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) 24 | 25 | #Region "My.Settings Auto-Save Functionality" 26 | #If _MyType = "WindowsForms" Then 27 | Private Shared addedHandler As Boolean 28 | 29 | Private Shared addedHandlerLockObject As New Object 30 | 31 | _ 32 | Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) 33 | If My.Application.SaveMySettingsOnExit Then 34 | My.Settings.Save() 35 | End If 36 | End Sub 37 | #End If 38 | #End Region 39 | 40 | Public Shared ReadOnly Property [Default]() As MySettings 41 | Get 42 | 43 | #If _MyType = "WindowsForms" Then 44 | If Not addedHandler Then 45 | SyncLock addedHandlerLockObject 46 | If Not addedHandler Then 47 | AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings 48 | addedHandler = True 49 | End If 50 | End SyncLock 51 | End If 52 | #End If 53 | Return defaultInstance 54 | End Get 55 | End Property 56 | End Class 57 | End Namespace 58 | 59 | Namespace My 60 | 61 | _ 64 | Friend Module MySettingsProperty 65 | 66 | _ 67 | Friend ReadOnly Property Settings() As Global.ClassLibraryVB.My.MySettings 68 | Get 69 | Return Global.ClassLibraryVB.My.MySettings.Default 70 | End Get 71 | End Property 72 | End Module 73 | End Namespace 74 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationVB/My Project/Settings.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My 16 | 17 | _ 20 | Partial Friend NotInheritable Class MySettings 21 | Inherits Global.System.Configuration.ApplicationSettingsBase 22 | 23 | Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) 24 | 25 | #Region "My.Settings Auto-Save Functionality" 26 | #If _MyType = "WindowsForms" Then 27 | Private Shared addedHandler As Boolean 28 | 29 | Private Shared addedHandlerLockObject As New Object 30 | 31 | _ 32 | Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) 33 | If My.Application.SaveMySettingsOnExit Then 34 | My.Settings.Save() 35 | End If 36 | End Sub 37 | #End If 38 | #End Region 39 | 40 | Public Shared ReadOnly Property [Default]() As MySettings 41 | Get 42 | 43 | #If _MyType = "WindowsForms" Then 44 | If Not addedHandler Then 45 | SyncLock addedHandlerLockObject 46 | If Not addedHandler Then 47 | AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings 48 | addedHandler = True 49 | End If 50 | End SyncLock 51 | End If 52 | #End If 53 | Return defaultInstance 54 | End Get 55 | End Property 56 | End Class 57 | End Namespace 58 | 59 | Namespace My 60 | 61 | _ 64 | Friend Module MySettingsProperty 65 | 66 | _ 67 | Friend ReadOnly Property Settings() As Global.ConsoleApplicationVB.My.MySettings 68 | Get 69 | Return Global.ConsoleApplicationVB.My.MySettings.Default 70 | End Get 71 | End Property 72 | End Module 73 | End Namespace 74 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationVB/My Project/Settings.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My 16 | 17 | _ 20 | Partial Friend NotInheritable Class MySettings 21 | Inherits Global.System.Configuration.ApplicationSettingsBase 22 | 23 | Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) 24 | 25 | #Region "My.Settings Auto-Save Functionality" 26 | #If _MyType = "WindowsForms" Then 27 | Private Shared addedHandler As Boolean 28 | 29 | Private Shared addedHandlerLockObject As New Object 30 | 31 | _ 32 | Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) 33 | If My.Application.SaveMySettingsOnExit Then 34 | My.Settings.Save() 35 | End If 36 | End Sub 37 | #End If 38 | #End Region 39 | 40 | Public Shared ReadOnly Property [Default]() As MySettings 41 | Get 42 | 43 | #If _MyType = "WindowsForms" Then 44 | If Not addedHandler Then 45 | SyncLock addedHandlerLockObject 46 | If Not addedHandler Then 47 | AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings 48 | addedHandler = True 49 | End If 50 | End SyncLock 51 | End If 52 | #End If 53 | Return defaultInstance 54 | End Get 55 | End Property 56 | End Class 57 | End Namespace 58 | 59 | Namespace My 60 | 61 | _ 64 | Friend Module MySettingsProperty 65 | 66 | _ 67 | Friend ReadOnly Property Settings() As Global.WindowsFormsApplicationVB.My.MySettings 68 | Get 69 | Return Global.WindowsFormsApplicationVB.My.MySettings.Default 70 | End Get 71 | End Property 72 | End Module 73 | End Namespace 74 | -------------------------------------------------------------------------------- /src/Tests/Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | Exe 6 | $(NoWarn);xUnit1051 7 | testing 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | PreserveNewest 21 | 22 | 23 | PreserveNewest 24 | 25 | 26 | PreserveNewest 27 | 28 | 29 | PreserveNewest 30 | 31 | 32 | PreserveNewest 33 | 34 | 35 | PreserveNewest 36 | 37 | 38 | PreserveNewest 39 | 40 | 41 | PreserveNewest 42 | 43 | 44 | PreserveNewest 45 | 46 | 47 | PreserveNewest 48 | 49 | 50 | PreserveNewest 51 | 52 | 53 | PreserveNewest 54 | 55 | 56 | PreserveNewest 57 | 58 | 59 | PreserveNewest 60 | 61 | 62 | PreserveNewest 63 | 64 | 65 | -------------------------------------------------------------------------------- /src/Tests/StartProjectFinderTests.cs: -------------------------------------------------------------------------------- 1 | public class StartProjectFinderTests 2 | { 3 | [Fact] 4 | public void Exe_from_OutputType() 5 | { 6 | var projectText = File.ReadAllText("OutputType_Exe.txt"); 7 | var document = XDocument.Parse(projectText); 8 | Assert.True(StartProjectFinder.ShouldIncludeProjectXml(document, "/dir/project.csproj")); 9 | } 10 | 11 | [Fact] 12 | public void WebApplication_webSdk() 13 | { 14 | var projectText = File.ReadAllText("WebApplication_websdk.txt"); 15 | var document = XDocument.Parse(projectText); 16 | Assert.True(StartProjectFinder.ShouldIncludeProjectXml(document, "/dir/project.csproj")); 17 | } 18 | 19 | [Fact] 20 | public void GetStartupProjectsWithDefault() 21 | { 22 | var startupProjects = StartProjectFinder.GetStartProjects("SimpleSolutionWithDefault/SimpleSolution.sln"); 23 | Assert.Equal("11111111-1111-1111-1111-111111111111", startupProjects.Single()); 24 | } 25 | 26 | [Fact] 27 | public void Conditional_Exe_from_OutputType() 28 | { 29 | var projectText = File.ReadAllText("OutputType_Conditional_Exe.txt"); 30 | var document = XDocument.Parse(projectText); 31 | Assert.True(StartProjectFinder.ShouldIncludeProjectXml(document, "/dir/project.csproj")); 32 | } 33 | 34 | [Fact] 35 | public void WinExe_from_OutputType() 36 | { 37 | var projectText = File.ReadAllText("OutputType_WinExe.txt"); 38 | var document = XDocument.Parse(projectText); 39 | Assert.True(StartProjectFinder.ShouldIncludeProjectXml(document, "/dir/project.csproj")); 40 | } 41 | 42 | [Fact] 43 | public void StartActionIsProgram() 44 | { 45 | var projectText = File.ReadAllText("StartActionIsProgram.txt"); 46 | var document = XDocument.Parse(projectText); 47 | Assert.True(StartProjectFinder.ShouldIncludeProjectXml(document, "/dir/project.csproj")); 48 | } 49 | 50 | [Fact] 51 | public void Lib_from_OutputType() 52 | { 53 | var projectText = File.ReadAllText("OutputType_Lib.txt"); 54 | var document = XDocument.Parse(projectText); 55 | Assert.False(StartProjectFinder.ShouldIncludeProjectXml(document, "/dir/project.csproj")); 56 | } 57 | 58 | [Fact] 59 | public void WebApplication_xproj() 60 | { 61 | var projectText = File.ReadAllText("WebApplication_xproj.txt"); 62 | var document = XDocument.Parse(projectText); 63 | Assert.False(StartProjectFinder.ShouldIncludeProjectXml(document, "/dir/project.csproj")); 64 | } 65 | 66 | [Fact] 67 | public void Multiple_excluded_project_types() 68 | { 69 | var projectText = File.ReadAllText("Multiple_Exclude.txt"); 70 | var document = XDocument.Parse(projectText); 71 | Assert.False(StartProjectFinder.ShouldIncludeProjectXml(document, "/dir/project.csproj")); 72 | } 73 | 74 | [Fact] 75 | public void Multiple_include_project_types() 76 | { 77 | var projectText = File.ReadAllText("Multiple_Include.txt"); 78 | var document = XDocument.Parse(projectText); 79 | Assert.True(StartProjectFinder.ShouldIncludeProjectXml(document, "/dir/project.csproj")); 80 | } 81 | 82 | [Fact] 83 | public void Lower_project_types() 84 | { 85 | var projectText = File.ReadAllText("Lower_Include.txt"); 86 | var document = XDocument.Parse(projectText); 87 | Assert.True(StartProjectFinder.ShouldIncludeProjectXml(document, "/dir/project.csproj")); 88 | } 89 | } -------------------------------------------------------------------------------- /src/Tests/OutputType_WinExe.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {A091F9A6-5AC1-4EFB-86B0-9A5EAA8C4A20} 8 | WinExe 9 | Properties 10 | WindowsFormsApplicationCS 11 | WindowsFormsApplicationCS 12 | v4.5 13 | 512 14 | 15 | 16 | AnyCPU 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | DEBUG;TRACE 22 | prompt 23 | 4 24 | 25 | 26 | AnyCPU 27 | pdbonly 28 | true 29 | bin\Release\ 30 | TRACE 31 | prompt 32 | 4 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | Form 49 | 50 | 51 | Form1.cs 52 | 53 | 54 | 55 | ResXFileCodeGenerator 56 | Resources.Designer.cs 57 | Designer 58 | 59 | 60 | True 61 | Resources.resx 62 | 63 | 64 | SettingsSingleFileGenerator 65 | Settings.Designer.cs 66 | 67 | 68 | True 69 | Settings.settings 70 | True 71 | 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationCS/WindowsFormsApplicationCS.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {A091F9A6-5AC1-4EFB-86B0-9A5EAA8C4A20} 8 | WinExe 9 | Properties 10 | WindowsFormsApplicationCS 11 | WindowsFormsApplicationCS 12 | v4.5 13 | 512 14 | 15 | 16 | AnyCPU 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | DEBUG;TRACE 22 | prompt 23 | 4 24 | 25 | 26 | AnyCPU 27 | pdbonly 28 | true 29 | bin\Release\ 30 | TRACE 31 | prompt 32 | 4 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | Form 49 | 50 | 51 | Form1.cs 52 | 53 | 54 | 55 | ResXFileCodeGenerator 56 | Resources.Designer.cs 57 | Designer 58 | 59 | 60 | True 61 | Resources.resx 62 | 63 | 64 | SettingsSingleFileGenerator 65 | Settings.Designer.cs 66 | 67 | 68 | True 69 | Settings.settings 70 | True 71 | 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /code_of_conduct.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at simon.cropp@gmail.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationFS/ConsoleApplicationFS.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | 2.0 8 | 18606457-fcf0-4d4e-bc5c-fb11d1230409 9 | Exe 10 | ConsoleApplicationFS 11 | ConsoleApplicationFS 12 | v4.5 13 | true 14 | 4.3.1.0 15 | ConsoleApplicationFS 16 | 17 | 18 | true 19 | full 20 | false 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | 3 25 | AnyCPU 26 | bin\Debug\ConsoleApplicationFS.XML 27 | true 28 | 29 | 30 | pdbonly 31 | true 32 | true 33 | bin\Release\ 34 | TRACE 35 | 3 36 | AnyCPU 37 | bin\Release\ConsoleApplicationFS.XML 38 | true 39 | 40 | 41 | 42 | 43 | True 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 11 55 | 56 | 57 | 58 | 59 | $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets 60 | 61 | 62 | 63 | 64 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryFS/ClassLibraryFS.fsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | 2.0 8 | 915cbc1c-4f15-4293-b0c4-787ce4e82787 9 | Library 10 | ClassLibraryFS 11 | ClassLibraryFS 12 | v4.5 13 | 4.3.1.0 14 | ClassLibraryFS 15 | 16 | 17 | true 18 | full 19 | false 20 | false 21 | bin\Debug\ 22 | DEBUG;TRACE 23 | 3 24 | bin\Debug\ClassLibraryFS.XML 25 | 26 | 27 | pdbonly 28 | true 29 | true 30 | bin\Release\ 31 | TRACE 32 | 3 33 | bin\Release\ClassLibraryFS.XML 34 | 35 | 36 | 37 | 38 | True 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 11 50 | 51 | 52 | 53 | 54 | $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets 55 | 56 | 57 | 58 | 59 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets 60 | 61 | 62 | 63 | 64 | 71 | -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationVB/My Project/MyExtensions/MyWebExtension.vb: -------------------------------------------------------------------------------- 1 | #If _MyType <> "Empty" Then 2 | 3 | Namespace My 4 | ''' 5 | ''' Module used to define the properties that are available in the My Namespace for Web projects. 6 | ''' 7 | ''' 8 | _ 9 | Module MyWebExtension 10 | Private s_Computer As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Devices.ServerComputer) 11 | Private s_User As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.ApplicationServices.WebUser) 12 | Private s_Log As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Logging.AspLog) 13 | ''' 14 | ''' Returns information about the host computer. 15 | ''' 16 | _ 17 | Friend ReadOnly Property Computer() As Global.Microsoft.VisualBasic.Devices.ServerComputer 18 | Get 19 | Return s_Computer.GetInstance() 20 | End Get 21 | End Property 22 | ''' 23 | ''' Returns information for the current Web user. 24 | ''' 25 | _ 26 | Friend ReadOnly Property User() As Global.Microsoft.VisualBasic.ApplicationServices.WebUser 27 | Get 28 | Return s_User.GetInstance() 29 | End Get 30 | End Property 31 | ''' 32 | ''' Returns Request object. 33 | ''' 34 | _ 35 | _ 36 | Friend ReadOnly Property Request() As Global.System.Web.HttpRequest 37 | _ 38 | Get 39 | Dim CurrentContext As Global.System.Web.HttpContext = Global.System.Web.HttpContext.Current 40 | If CurrentContext IsNot Nothing Then 41 | Return CurrentContext.Request 42 | End If 43 | Return Nothing 44 | End Get 45 | End Property 46 | ''' 47 | ''' Returns Response object. 48 | ''' 49 | _ 50 | _ 51 | Friend ReadOnly Property Response() As Global.System.Web.HttpResponse 52 | _ 53 | Get 54 | Dim CurrentContext As Global.System.Web.HttpContext = Global.System.Web.HttpContext.Current 55 | If CurrentContext IsNot Nothing Then 56 | Return CurrentContext.Response 57 | End If 58 | Return Nothing 59 | End Get 60 | End Property 61 | ''' 62 | ''' Returns the Asp log object. 63 | ''' 64 | _ 65 | Friend ReadOnly Property Log() As Global.Microsoft.VisualBasic.Logging.AspLog 66 | Get 67 | Return s_Log.GetInstance() 68 | End Get 69 | End Property 70 | End Module 71 | End Namespace 72 | 73 | #End If -------------------------------------------------------------------------------- /src/SetStartupProjects/StartProjectSuoCreator.cs: -------------------------------------------------------------------------------- 1 | namespace SetStartupProjects; 2 | 3 | /// 4 | /// Creates suo files that contain startup projects. 5 | /// 6 | public static class StartProjectSuoCreator 7 | { 8 | /// 9 | /// Create suo startup files for a specific solution file. 10 | /// 11 | /// 12 | /// All existing suo files will be overwritten. 13 | /// 14 | public static void CreateForSolutionFile(string solutionFilePath, List startupProjectGuids, VisualStudioVersions visualStudioVersions = VisualStudioVersions.All) 15 | { 16 | Ensure.NotNullOrWhiteSpace(solutionFilePath, nameof(solutionFilePath)); 17 | Ensure.FileExists(solutionFilePath, nameof(solutionFilePath)); 18 | if (startupProjectGuids.Count == 0) 19 | { 20 | throw new ArgumentOutOfRangeException(nameof(startupProjectGuids), $"For solutionFilePath: '{solutionFilePath}'"); 21 | } 22 | 23 | var solutionDirectory = Path.GetDirectoryName(solutionFilePath)!; 24 | 25 | var solutionName = Path.GetFileNameWithoutExtension(solutionFilePath); 26 | if (visualStudioVersions.HasFlag(VisualStudioVersions.Vs2022)) 27 | { 28 | Write(startupProjectGuids, solutionDirectory, solutionName, "v17", "2022"); 29 | } 30 | 31 | if (visualStudioVersions.HasFlag(VisualStudioVersions.Vs2019)) 32 | { 33 | Write(startupProjectGuids, solutionDirectory, solutionName, "v16", "2019"); 34 | } 35 | 36 | if (visualStudioVersions.HasFlag(VisualStudioVersions.Vs2017)) 37 | { 38 | Write(startupProjectGuids, solutionDirectory, solutionName, "v15", "2017"); 39 | } 40 | } 41 | 42 | static void Write(List startupProjectGuids, string solutionDirectory, string solutionName, string versionKey, string resourceKey) 43 | { 44 | var suoDirectoryPath = Path.Combine(solutionDirectory, ".vs", solutionName, versionKey); 45 | Directory.CreateDirectory(suoDirectoryPath); 46 | var suoFilePath = Path.Combine(suoDirectoryPath, ".suo"); 47 | File.Delete(suoFilePath); 48 | using var stream = Resource.AsStream($"Solution{resourceKey}.suotemplate"); 49 | try 50 | { 51 | using var root = RootStorage.Open(stream); 52 | root.Delete("SolutionConfiguration"); 53 | var solutionConfiguration = root.CreateStream("SolutionConfiguration"); 54 | 55 | SetSolutionConfigValue(solutionConfiguration, startupProjectGuids); 56 | 57 | using var fileStream = new FileStream(suoFilePath, FileMode.CreateNew); 58 | stream.Position = 0; 59 | stream.CopyTo(fileStream); 60 | fileStream.Flush(); 61 | } 62 | catch (Exception exception) 63 | { 64 | var joinedGuids = string.Join(' ', startupProjectGuids); 65 | var message = $"Could not create .suo file for '{suoFilePath}'. Guids: {joinedGuids}"; 66 | throw new(message, exception); 67 | } 68 | } 69 | 70 | static void SetSolutionConfigValue(CfbStream cfStream, IEnumerable startupProjectGuids) 71 | { 72 | var single = Encoding.GetEncodings() 73 | .Single(_ => string.Equals(_.Name, "utf-16", StringComparison.OrdinalIgnoreCase)); 74 | var encoding = single.GetEncoding(); 75 | const char nul = '\u0000'; 76 | const char dc1 = '\u0011'; 77 | const char etx = '\u0003'; 78 | const char soh = '\u0001'; 79 | 80 | var builder = new StringBuilder(); 81 | builder.Append(dc1); 82 | builder.Append(nul); 83 | builder.Append("MultiStartupProj"); 84 | builder.Append(nul); 85 | builder.Append('='); 86 | builder.Append(etx); 87 | builder.Append(soh); 88 | builder.Append(nul); 89 | builder.Append(';'); 90 | foreach (var startupProjectGuid in startupProjectGuids) 91 | { 92 | builder.Append('4'); 93 | builder.Append(nul); 94 | builder.AppendFormat("{{{0}}}.dwStartupOpt", startupProjectGuid); 95 | builder.Append(nul); 96 | builder.Append('='); 97 | builder.Append(etx); 98 | builder.Append(dc1); 99 | builder.Append(nul); 100 | builder.Append(';'); 101 | } 102 | 103 | var newBytes = encoding.GetBytes(builder.ToString()); 104 | cfStream.Write(newBytes); 105 | cfStream.Flush(); 106 | } 107 | } -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationCS/WpfApplicationCS.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {59AAAFE1-198C-4BB4-9538-072F8A5DC9DF} 8 | WinExe 9 | Properties 10 | WpfApplicationCS 11 | WpfApplicationCS 12 | v4.5 13 | 512 14 | {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 15 | 4 16 | 17 | 18 | AnyCPU 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | 27 | 28 | AnyCPU 29 | pdbonly 30 | true 31 | bin\Release\ 32 | TRACE 33 | prompt 34 | 4 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 4.0 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | MSBuild:Compile 54 | Designer 55 | 56 | 57 | MSBuild:Compile 58 | Designer 59 | 60 | 61 | App.xaml 62 | Code 63 | 64 | 65 | MainWindow.xaml 66 | Code 67 | 68 | 69 | 70 | 71 | True 72 | True 73 | Resources.resx 74 | 75 | 76 | True 77 | Settings.settings 78 | True 79 | 80 | 81 | ResXFileCodeGenerator 82 | Resources.Designer.cs 83 | 84 | 85 | SettingsSingleFileGenerator 86 | Settings.Designer.cs 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 101 | -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationCS/WebApplicationCS.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | 8 | 9 | 2.0 10 | {F8D988CE-ED35-4703-958A-F7771E4AF722} 11 | {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} 12 | Library 13 | Properties 14 | WebApplicationCS 15 | WebApplicationCS 16 | v4.5 17 | true 18 | 19 | 20 | 21 | 22 | 23 | 24 | true 25 | full 26 | false 27 | bin\ 28 | DEBUG;TRACE 29 | prompt 30 | 4 31 | 32 | 33 | pdbonly 34 | true 35 | bin\ 36 | TRACE 37 | prompt 38 | 4 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | Web.config 62 | 63 | 64 | Web.config 65 | 66 | 67 | 68 | 69 | 70 | 71 | 10.0 72 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | True 82 | True 83 | 49650 84 | / 85 | http://localhost:49650/ 86 | False 87 | False 88 | 89 | 90 | False 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryVB/ClassLibraryVB.vbproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {628A29CC-E572-40C4-8AEE-333D73D07404} 8 | Library 9 | ClassLibraryVB 10 | ClassLibraryVB 11 | 512 12 | Windows 13 | v4.5 14 | 15 | 16 | true 17 | full 18 | true 19 | true 20 | bin\Debug\ 21 | ClassLibraryVB.xml 22 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 23 | 24 | 25 | pdbonly 26 | false 27 | true 28 | true 29 | bin\Release\ 30 | ClassLibraryVB.xml 31 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 32 | 33 | 34 | On 35 | 36 | 37 | Binary 38 | 39 | 40 | Off 41 | 42 | 43 | On 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | True 69 | Application.myapp 70 | 71 | 72 | True 73 | True 74 | Resources.resx 75 | 76 | 77 | True 78 | Settings.settings 79 | True 80 | 81 | 82 | 83 | 84 | VbMyResourcesResXFileCodeGenerator 85 | Resources.Designer.vb 86 | My.Resources 87 | Designer 88 | 89 | 90 | 91 | 92 | MyApplicationCodeGenerator 93 | Application.Designer.vb 94 | 95 | 96 | SettingsSingleFileGenerator 97 | My 98 | Settings.Designer.vb 99 | 100 | 101 | 102 | 109 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationVB/ConsoleApplicationVB.vbproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {97AE33BD-7F0D-40AC-9964-A771771885DC} 8 | Exe 9 | ConsoleApplicationVB.Module1 10 | ConsoleApplicationVB 11 | ConsoleApplicationVB 12 | 512 13 | Console 14 | v4.5 15 | 16 | 17 | AnyCPU 18 | true 19 | full 20 | true 21 | true 22 | bin\Debug\ 23 | ConsoleApplicationVB.xml 24 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 25 | 26 | 27 | AnyCPU 28 | pdbonly 29 | false 30 | true 31 | true 32 | bin\Release\ 33 | ConsoleApplicationVB.xml 34 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 35 | 36 | 37 | On 38 | 39 | 40 | Binary 41 | 42 | 43 | Off 44 | 45 | 46 | On 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | True 73 | Application.myapp 74 | 75 | 76 | True 77 | True 78 | Resources.resx 79 | 80 | 81 | True 82 | Settings.settings 83 | True 84 | 85 | 86 | 87 | 88 | VbMyResourcesResXFileCodeGenerator 89 | Resources.Designer.vb 90 | My.Resources 91 | Designer 92 | 93 | 94 | 95 | 96 | MyApplicationCodeGenerator 97 | Application.Designer.vb 98 | 99 | 100 | SettingsSingleFileGenerator 101 | My 102 | Settings.Designer.vb 103 | 104 | 105 | 106 | 107 | 114 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationVB/WindowsFormsApplicationVB.vbproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {11A80128-D9CA-4D63-8525-43854CFBD9DB} 8 | WinExe 9 | WindowsFormsApplicationVB.My.MyApplication 10 | WindowsFormsApplicationVB 11 | WindowsFormsApplicationVB 12 | 512 13 | WindowsForms 14 | v4.5 15 | 16 | 17 | AnyCPU 18 | true 19 | full 20 | true 21 | true 22 | bin\Debug\ 23 | WindowsFormsApplicationVB.xml 24 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 25 | 26 | 27 | AnyCPU 28 | pdbonly 29 | false 30 | true 31 | true 32 | bin\Release\ 33 | WindowsFormsApplicationVB.xml 34 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 35 | 36 | 37 | On 38 | 39 | 40 | Binary 41 | 42 | 43 | Off 44 | 45 | 46 | On 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | Form 75 | 76 | 77 | Form1.vb 78 | Form 79 | 80 | 81 | 82 | True 83 | Application.myapp 84 | 85 | 86 | True 87 | True 88 | Resources.resx 89 | 90 | 91 | True 92 | Settings.settings 93 | True 94 | 95 | 96 | 97 | 98 | VbMyResourcesResXFileCodeGenerator 99 | Resources.Designer.vb 100 | My.Resources 101 | Designer 102 | 103 | 104 | 105 | 106 | MyApplicationCodeGenerator 107 | Application.Designer.vb 108 | 109 | 110 | SettingsSingleFileGenerator 111 | My 112 | Settings.Designer.vb 113 | 114 | 115 | 116 | 117 | 124 | -------------------------------------------------------------------------------- /src/SampleSolution/ClassLibraryVB/My Project/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /src/SampleSolution/WebApplicationVB/My Project/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationCS/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /src/SampleSolution/WpfApplicationVB/My Project/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /src/SampleSolution/ConsoleApplicationVB/My Project/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /src/SampleSolution/WindowsFormsApplicationCS/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | --------------------------------------------------------------------------------