Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
95a4f5a
[VsIntegration] CPS project system: new ProjectSystemCPS project and …
hpetriffer Sep 26, 2026
6a502f9
[VsIntegration] CPS project system WP-5: XSharpProjectAdapter feeds t…
hpetriffer Sep 26, 2026
2a023a7
[VsIntegration] CPS project system WP-2: project capabilities and X# …
hpetriffer Sep 26, 2026
5b9514f
[VsIntegration] CPS project system WP-3: X# item types and item templ…
hpetriffer Sep 26, 2026
4e2e45b
[VsIntegration] CPS project system WP-4: X# property pages as XAML rules
hpetriffer Sep 26, 2026
bd20c48
[VsIntegration] CPS project system WP-6: commands side by side, Error…
hpetriffer Sep 26, 2026
3a4d0a0
[VsIntegration] CPS project system WP-7: VO designers through the ada…
hpetriffer Sep 26, 2026
467724a
[VsIntegration] CPS project system: make the project properties UI av…
hpetriffer Sep 26, 2026
1c22514
[VsIntegration] CPS project system: project selector for SDK-style an…
hpetriffer Sep 26, 2026
3c0dee9
[VsIntegration] CPS project system: open the X# solution model for CP…
hpetriffer Sep 27, 2026
d7428e6
[VsIntegration] CPS project system: fix source item subscription, fir…
hpetriffer Sep 27, 2026
be0b008
[VsIntegration] CPS test bed: refresh the image library cache of the …
hpetriffer Sep 27, 2026
b426dde
[VsIntegration] CPS project system: register the CPS project type in …
hpetriffer Sep 27, 2026
8ee1974
[VsIntegration] Port the shadow WinForms designer to the CPS project …
hpetriffer Sep 27, 2026
8d8cd65
[VsIntegration] CPS test bed: SDK-style WinForms project for the shad…
hpetriffer Sep 27, 2026
f195b9a
[VsIntegration] Keep XSharpCodeDomHelper out of the GAC'd XSharp.Code…
hpetriffer Sep 27, 2026
54ce3fb
[VsIntegration] Keep shadow designer companion projects out of X# SDK…
hpetriffer Sep 28, 2026
c1ac3d6
[VsIntegration] CPS project system: form, user control and VO binary …
hpetriffer Sep 28, 2026
757c27a
[VsIntegration] Shadow designer: remove the empty companion solution …
hpetriffer Sep 28, 2026
e47d8ce
[VsIntegration] CPS project system: register the project selector for…
hpetriffer Sep 28, 2026
de74c77
[VsIntegration] Shadow designer: make the empty solution folder clean…
hpetriffer Sep 28, 2026
7df874f
[VsIntegration] Shadow designer: resolve assembly references before p…
hpetriffer Sep 28, 2026
0424f25
[VsIntegration] WP-8: remove the SDK-style project path from MPFproj
hpetriffer Sep 28, 2026
3e4fe85
[VsIntegration] WP-8: remove the dead SDK-style branches from MPFproj
hpetriffer Sep 28, 2026
083eb4f
[VsIntegration] CPS project system: fix the UseNativeVersion and NoWi…
hpetriffer Sep 28, 2026
e68ac4b
[VsIntegration] CPS project system: hide the Win32 resource file option
hpetriffer Sep 28, 2026
ec9a8e0
[VsIntegration] CPS project system: error squiggles for build errors
hpetriffer Sep 28, 2026
3328b7d
[VsIntegration] CPS project system: remove the C# global usings editor
hpetriffer Sep 28, 2026
477524b
[VsIntegration] CPS project system: open the X# solution model before…
hpetriffer Sep 28, 2026
45ba97b
[VsIntegration] CPS project system: do not pass XSharpCpsProjectSyste…
hpetriffer Sep 28, 2026
d320053
[VsIntegration] CPS project system: fix a dispose race in the Error L…
hpetriffer Sep 28, 2026
71fd096
[VsIntegration] Shadow designer: keep the companions when the solutio…
hpetriffer Sep 28, 2026
2d4ccf1
[VsIntegration] Shadow designer: cancel the pending folder deletion w…
hpetriffer Sep 28, 2026
5f70453
[VsIntegration] Shadow designer: companion stub with the real base class
hpetriffer Sep 28, 2026
8443647
[VsIntegration] Shadow designer: companion target framework from the …
hpetriffer Sep 28, 2026
2f621d0
[VsIntegration] Shadow designer: wait for the project load instead of…
hpetriffer Sep 28, 2026
f11ac1d
[VsIntegration] Shadow designer: add new form files to an already loa…
hpetriffer Sep 28, 2026
29188bd
[VsIntegration] Shadow designer: open forms added with "Add New Item"…
hpetriffer Sep 28, 2026
19213e9
[VsIntegration] CPS project system: create the code model on the UI t…
hpetriffer Sep 28, 2026
1803b79
[VsIntegration] CPS project system: refresh the Task List when a file…
hpetriffer Sep 28, 2026
adbfd46
[VsIntegration] CPS project system: make the image manifest assembly …
hpetriffer Sep 28, 2026
2488f7a
[VsIntegration] CPS project system: check the overridable managed des…
hpetriffer Sep 29, 2026
8468de2
[VsIntegration] CPS project system: hide the property page of the Nat…
hpetriffer Sep 29, 2026
3f29459
[VsIntegration] CPS project system: map .vnsqs and .vnrep to VOBinary
hpetriffer Sep 29, 2026
fed3f71
[VsIntegration] CPS project system: SuppressRCWarnings on the Build page
hpetriffer Sep 29, 2026
fb73a5a
[VsIntegration] CPS project system: do not hold the adapter lock duri…
hpetriffer Sep 29, 2026
08e0aaa
[VsIntegration] CPS project system: less file system access in the tr…
hpetriffer Sep 29, 2026
beddd38
[VsIntegration] CPS project system: do not copy all intellisense erro…
hpetriffer Sep 29, 2026
7c258dd
[VsIntegration] CPS test bed: SDK-style VO project for the VO designers
hpetriffer Sep 29, 2026
8ca7ca3
[VsIntegration] CPS project system: walk source files that change on …
hpetriffer Sep 29, 2026
438f7d3
[VsIntegration] CPS test bed: DBServer and FieldSpec for the VO desig…
hpetriffer Sep 29, 2026
5ec34de
[CodeDomProvider] Write static field references on parsed types with '.'
hpetriffer Sep 29, 2026
c54a1b9
[VsIntegration] CPS project system: form icon for generated form files
hpetriffer Sep 29, 2026
52d9031
[VsIntegration] CPS project system: update the form icon when a desig…
hpetriffer Sep 29, 2026
2ba79ab
[VsIntegration] Add .designer file for X# projects loaded by CPS
hpetriffer Sep 29, 2026
2a18bc9
[VsIntegration] Add .designer file: do not write the form file in low…
hpetriffer Sep 29, 2026
1f768cb
[VsIntegration] CPS shadow designer: do not wait for the references o…
hpetriffer Sep 29, 2026
bd1ba93
[VsIntegration] CPS shadow designer: wait only briefly for the refere…
hpetriffer Sep 29, 2026
4eb7ba1
Merge remote-tracking branch 'origin/dev' into feature/cps-project-sy…
hpetriffer Sep 29, 2026
8e4f2fe
[VsIntegration] CPS project system: conditional compilation symbols k…
hpetriffer Sep 29, 2026
f8b0fd8
[VsIntegration] CPS project system: documentation
hpetriffer Sep 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/Common/XSharpConstants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ internal static class XSharpConstants
internal const string EditorFactoryGuidString = "B4829761-2BFA-44B7-8F8F-D2625EBCF218";
internal const string guidCpsProjectTypeString = "AB494DCE-A11B-4583-851E-D4A86775B3F0";
internal const string guidProjectSelectorString = "DF89AA3B-6AE6-4971-8F78-1A03B346A7D5";
internal const string guidXSharpCpsProjectPkgString = "BAE3ADAE-83B3-44CC-BA79-A18F03F0D121";
internal static readonly Guid guidXSharpProjectFactory = new Guid(guidXSharpProjectFactoryString);
internal static readonly Guid guidVOMenuEditorFactory = new Guid(guidXSharpVOMenuEditor);
internal static readonly Guid guidVODbServerEditorFactory = new Guid(guidXSharpVODbServerEditor);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE.md file in the project root for more information. -->
<Rule Name="Application"
OverrideMode="Extend"
xmlns="http://schemas.microsoft.com/build/2009/properties">

<Rule.Categories>
<Category Name="Resources"
DisplayName="Win32 Resources"
Description="Resource settings for the application." />
<Category Name="ManagedResources"
DisplayName="Managed Resources"
Description="Managed Resource settings for the application." />
<Category Name="Packaging"
DisplayName="Packaging"
Description="Packaging settings for the application." />
</Rule.Categories>

<!--
X# does not support the C# "Resource file" option: the Xsc task gets its Win32 resources from the
Win32Resource *item* (@(Win32Resource), compiled from the .rc files by AfterResGen), the $(Win32Resource)
property is never read. Selecting "Resource file" would make the managed interceptor remove ApplicationIcon
and ApplicationManifest and write a property that the build ignores. So ResourceSpecificationKind and
Win32Resource are hidden; the managed interceptor still evaluates ResourceSpecificationKind to
IconAndManifest (no $(Win32Resource)), which keeps Icon and Manifest visible.
-->
<EnumProperty Name="ResourceSpecificationKind"
DisplayName="Resources"
Description="Specifies how application resources will be managed."
Visible="False"
Category="Resources">
<EnumProperty.DataSource>
<DataSource PersistedName="ResourceSpecificationKind"
Persistence="ProjectFileWithInterception"
HasConfigurationCondition="False" />
</EnumProperty.DataSource>
<EnumValue Name="IconAndManifest"
DisplayName="Icon and manifest" />
<EnumValue Name="ResourceFile"
DisplayName="Resource file" />
</EnumProperty>

<EnumProperty Name="ApplicationManifestKind"
DisplayName="Manifest"
Description="Selects a manifest generation option when the application runs on Windows Vista or later under User Account Control (UAC). Options include a default manifest, no manifest, or a custom manifest provided by your project."
Category="Resources">
<EnumProperty.DataSource>
<DataSource PersistedName="ApplicationManifestKind"
Persistence="ProjectFileWithInterception"
HasConfigurationCondition="False" />
</EnumProperty.DataSource>
<EnumProperty.Metadata>
<NameValuePair Name="DependsOn" Value="Application::ResourceSpecificationKind" />
<NameValuePair Name="VisibilityCondition">
<NameValuePair.Value>(has-evaluated-value "Application" "ResourceSpecificationKind" "IconAndManifest")</NameValuePair.Value>
</NameValuePair>
</EnumProperty.Metadata>
<EnumValue Name="DefaultManifest"
DisplayName="Embed manifest with default settings" />
<EnumValue Name="NoManifest"
DisplayName="Create application without a manifest" />
<EnumValue Name="CustomManifest"
DisplayName="Use a custom manifest" />
</EnumProperty>

<StringProperty Name="ApplicationManifestPath"
DisplayName="Manifest path"
Description="The path to the custom manifest file."
Category="Resources"
Subtype="file">
<StringProperty.DataSource>
<DataSource PersistedName="ApplicationManifestPath"
Persistence="ProjectFileWithInterception"
HasConfigurationCondition="False" />
</StringProperty.DataSource>
<StringProperty.Metadata>
<NameValuePair Name="DependsOn" Value="Application::ResourceSpecificationKind;Application::ApplicationManifestKind" />
<NameValuePair Name="VisibilityCondition">
<NameValuePair.Value>
(and
(has-evaluated-value "Application" "ApplicationManifestKind" "CustomManifest")
(has-evaluated-value "Application" "ResourceSpecificationKind" "IconAndManifest"))
</NameValuePair.Value>
</NameValuePair>
</StringProperty.Metadata>
</StringProperty>

<StringProperty Name="Win32Resource"
DisplayName="Resource file"
Description="Specifies a resource file for the project."
HelpUrl="https://go.microsoft.com/fwlink/?linkid=2147078"
Visible="False"
Category="Resources">
<StringProperty.ValueEditors>
<ValueEditor EditorType="FilePath">
<ValueEditor.Metadata>
<NameValuePair Name="FileTypeFilter" Value="Win32 resource files (*.res)|*.res|All files (*.*)|*.*" />
</ValueEditor.Metadata>
</ValueEditor>
</StringProperty.ValueEditors>
<StringProperty.Metadata>
<NameValuePair Name="DependsOn" Value="Application::ResourceSpecificationKind" />
<NameValuePair Name="VisibilityCondition">
<NameValuePair.Value>(has-evaluated-value "Application" "ResourceSpecificationKind" "ResourceFile")</NameValuePair.Value>
</NameValuePair>
</StringProperty.Metadata>
</StringProperty>

<BoolProperty Name="VulcanCompatibleResources"
DisplayName="Vulcan Compatible Resources"
Description="Use Vulcan Compatible Managed Resources (when 'True' then resources files are included in the assembly without namespace prefix. When 'False' then the resource files are prefixed with the namespace of the app, just like in other .Net languages, such as C#)"
Category="ManagedResources">
<BoolProperty.DataSource>
<DataSource PersistedName="VulcanCompatibleResources"
Persistence="ProjectFileWithInterception"
HasConfigurationCondition="False" />

</BoolProperty.DataSource>
</BoolProperty>
<BoolProperty Name="UseNativeVersion"
DisplayName="Prefer explicit version resource"
Description="When your application includes a native resource, use this native resource and do not generate a resource based on the global assembly properties such as AssemblyTitle, AssemblyVersion etc."
Category="Resources">
<BoolProperty.DataSource>
<DataSource PersistedName="UseNativeVersion"
Persistence="ProjectFileWithInterception"
HasConfigurationCondition="False" />

</BoolProperty.DataSource>
</BoolProperty>
<BoolProperty Name="NoWin32Manifest"
DisplayName="Suppress default Win32 manifest"
Description="Use The -nowin32manifest option to instruct the compiler not to embed any application manifest into the executable file."
Category="Resources">
<BoolProperty.DataSource>
<DataSource PersistedName="NoWin32Manifest"
Persistence="ProjectFileWithInterception"
HasConfigurationCondition="False" />

</BoolProperty.DataSource>
</BoolProperty>

</Rule>
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="utf-8" ?>
<Rule Name="Build"
OverrideMode="Extend"
xmlns="http://schemas.microsoft.com/build/2009/properties">

<!-- The managed definition with the X# persistence "XSharpDefineConstants" (XSharpDefineConstantsPropertiesProvider in
XSharp.ProjectSystemCPS): the managed "ProjectFileWithInterception" converts the list editor's value only for
C#/F#, for X# it wrote "MYSYM=False" and lost the implicit DEBUG/TRACE. -->
<StringProperty Name="DefineConstants"
DisplayName="Conditional compilation symbols"
Description="Specifies symbols on which to perform conditional compilation."
HelpUrl="https://go.microsoft.com/fwlink/?linkid=2147079"
Category="General">
<StringProperty.DataSource>
<DataSource Persistence="XSharpDefineConstants"
HasConfigurationCondition="True" />
</StringProperty.DataSource>
<StringProperty.ValueEditors>
<ValueEditor EditorType="MultiStringSelector">
<ValueEditor.Metadata>
<NameValuePair Name="TypeDescriptorText" Value="Custom symbols" />
<NameValuePair Name="AllowsCustomStrings" Value="True" />
<NameValuePair Name="ShouldDisplayEvaluatedPreview" Value="True" />
<NameValuePair Name="SingleValueConfigurationCommandEnabled" Value="False" />
</ValueEditor.Metadata>
</ValueEditor>
</StringProperty.ValueEditors>
</StringProperty>

<StringProperty Name="CommandLineOption"
DisplayName="Other flags"
Description="Additional compiler flags. Separate flags with whitespace."
Category="Advanced" />

<BoolProperty Category="Advanced"
Name="UseSharedCompilation"
DisplayName="Use the shared compiler"
Visible="True"
Default = "True"
Description="Use the shared compiler. This usually results in faster compilation because metadata from referenced assemblies is cached by the shared compiler.(/shared)" Switch="shared"/>
<EnumProperty Name="WarningLevel"
DisplayName="Warning level"
Description="Specifies the level to display for compiler warnings. Higher levels produce more warnings, and include all warnings from lower levels."
HelpUrl="https://go.microsoft.com/fwlink/?linkid=2146798"
Category="ErrorsAndWarnings">
<EnumProperty.Metadata>
<NameValuePair Name="EditabilityCondition">
<NameValuePair.Value>
(has-evaluated-value "Build" "WarningLevelOverridden" false)
</NameValuePair.Value>
</NameValuePair>
</EnumProperty.Metadata>
<EnumValue Name="0"
DisplayName="0 - Fewest warnings, including most severe issues" />
<EnumValue Name="1"
DisplayName="1" />
<EnumValue Name="2"
DisplayName="2" />
<EnumValue Name="3"
DisplayName="3 - Default warning level" />
<EnumValue Name="4"
DisplayName="4" />
<EnumValue Name="5"
DisplayName="5 - Most warnings, including less severe issues" />
</EnumProperty>

<!-- Passed to the NativeResourceCompiler task (XSharp.CurrentVersion.targets), default true (XSharp.props) -->
<BoolProperty Name="SuppressRCWarnings"
DisplayName="Suppress Resource Compiler warnings"
Description="Suppress warnings from the Native Resource Compiler about duplicate defines (RC4005)"
Category="ErrorsAndWarnings" />

<BoolProperty Name="AllowUnsafeBlocks" Visible="False" />

<StringProperty Name="LangVersion" Visible="False" />

<BoolProperty Name="CheckForOverflowUnderflow" Visible="False" />

<EnumProperty Name="ErrorReport" Visible="False" />

<EnumProperty Name="FileAlignment" Visible="False" />

</Rule>
Loading
Loading