Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.NETCore apps cannot specify a Windows application manifest and other things that must go in exe #1899

Closed
ericstj opened this issue Jan 25, 2018 · 14 comments
Assignees
Milestone

Comments

@ericstj
Copy link
Member

ericstj commented Jan 25, 2018

dotnet.exe does not contain an application manifest, nor does the stripped down version when building a standalone app. The result is that applications cannot specify supportedOS to tell Windows they want to run without any OS version compat shims.

On desktop the way this works is that an application can add a manifest file to the app project (Add new item > Application manifest file) and that gets embedded in the exe by the compiler. Since .NETCore apps don't actually build the EXE we'd have to do something different.

I propose we change the host to include all the latest supportedOS entries at the time we ship. This is consistent with what we do for exe's in desktop. We could then allow the application to specify a manifest then the SDK could replace the one in the host when building a standalone app.

@livarcocc
Copy link
Contributor

Is there an issue tracking this for the host side of the changes at core-setup? I imagine the SDK side would basically be able to respect this list and replace the manifest when appropriate?

@livarcocc livarcocc added this to the Unknown milestone Jan 25, 2018
@ericstj
Copy link
Member Author

ericstj commented Jan 25, 2018

I opened an issue in core-setup.

I think the SDK side would be to support specification of an Application Manifest for selfcontained applications and replace the application manifest from the host with the one specified by the project. That seems to give the most parity with the desktop way of doing things.

@ericstj
Copy link
Member Author

ericstj commented Feb 9, 2018

replace the application manifest from the host with the one specified by the project

I looked at this a bit more and I'm going to double down on this recommendation. That manifest can contain a lot of things that are application specific that folks may depend on which we cannot get right in a single copy in dotnet.exe.

@ericstj ericstj changed the title .NETCore apps get Windows version lie shims .NETCore apps cannot specify a Windows application manifest Jun 25, 2018
@ericstj ericstj modified the milestones: Unknown, 3.0.1xx Jul 2, 2018
@ericstj
Copy link
Member Author

ericstj commented Jul 2, 2018

This needs to be done for .NETCore 3.0. There are a lot of things that should be transferred from the app to the host in the case of a standalone app in order to meet people's expectations. Here's a partial list:

  1. Sub system bit (EG: windows vs console).
  2. Windows manifest
  3. Version
  4. Icon

1 & 2 will directly impact the desired functionality of .NET Core 3.0. There may be more. /cc @JeremyKuhne

@nguerrera
Copy link
Contributor

@tannergooding Do you have a pointer to the work you started for at least (3) in list above?

@tannergooding
Copy link
Member

@nguerrera, should be here: https://github.com/tannergooding/sdk/tree/embed-verinfo... I haven't checked if I have anything local that hasn't been pushed yet.

@nguerrera nguerrera changed the title .NETCore apps cannot specify a Windows application manifest .NETCore apps cannot specify a Windows application manifest and other things that must go in exe Jul 14, 2018
@nguerrera
Copy link
Contributor

Broadened the title to include 1-4 and whatever else.

@nguerrera
Copy link
Contributor

Subsystem bit is implemented now: #2470

@Pilchie
Copy link
Member

Pilchie commented Sep 5, 2018

@DustinCampbell and I were chatting about this this morning. In #2470, that only happens if there is a rid specified - should we do that implicitly and generate a host exe, etc if we know that it is a wpf/winforms exe (contains the framework reference)?

@livarcocc
Copy link
Contributor

Should we imply the RID itself in this case? With a self-contained false? This behavior would follow from that.

And how would we choose between x86 and x64? I remember this being hard in the past when we were looking for some RID for compatibility for full framework projects.

@nguerrera
Copy link
Contributor

nguerrera commented Sep 5, 2018

@peterhuene and I were just chatting about this challenge as well, and there isn't an easy answer.

@nguerrera
Copy link
Contributor

I think we should track whether you get an apphost by default separately from the work to put more stuff in an apphost.

@livarcocc
Copy link
Contributor

I believe this is being addressed by #2545.

@sbomer
Copy link
Member

sbomer commented Sep 26, 2018

Opened #2553 to track the question about implicit RIDs and apphost generation.

GangWang01 pushed a commit to GangWang01/sdk that referenced this issue Jun 7, 2022
* Join macro

* Make default format for the GUID macro overridable

Fixes dotnet#1737

* Add links to the different template content repos in the readme

* Convert repo list to bullets

* Adding netstandard2.1 to the list of TFMs for 3.0

* Releases the original source location mount point

* Change Build pool for internal builds (dotnet#1823)

* Removing the SourceLink packages since it is provided by Arcade

* Lowercase the content include path in the template pack csproj files

* Add gitignore template

* Update azure-pipelines.yml

* Update web.config item template

This updates the web.config item template to align with what `dotnet publish` produces when publishing

* Update template_feed/Microsoft.DotNet.Common.ItemTemplates/content/WebConfig/web.config

Co-Authored-By: Justin Kotalik <jukotali@microsoft.com>

* Merge master into stabilize (dotnet#1905)

* Update dependencies from https://github.com/dotnet/arcade build 20190418.7 (dotnet#1867)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19218.7

* Update dependencies from https://github.com/dotnet/arcade build 20190422.2 (dotnet#1870)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19222.2

* Update dependencies from https://github.com/dotnet/arcade build 20190423.2 (dotnet#1871)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19223.2

* Update dependencies from https://github.com/dotnet/arcade build 20190424.9 (dotnet#1873)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19224.9

* Update dependencies from https://github.com/dotnet/arcade build 20190425.5 (dotnet#1874)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19225.5

* Update dependencies from https://github.com/dotnet/arcade build 20190426.3 (dotnet#1875)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19226.3

* Update dependencies from https://github.com/dotnet/arcade build 20190429.8 (dotnet#1876)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19229.8

* Update dependencies from https://github.com/dotnet/arcade build 20190430.6 (dotnet#1877)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19230.6

* [master] Update dependencies from dotnet/arcade (dotnet#1879)

* Update dependencies from https://github.com/dotnet/arcade build 20190501.6

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19251.6

* Update dependencies from https://github.com/dotnet/arcade build 20190502.2

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19252.2

* Update dependencies from https://github.com/dotnet/arcade build 20190503.8 (dotnet#1881)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19253.8

* Update dependencies from https://github.com/dotnet/arcade build 20190504.1 (dotnet#1882)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19254.1

* Update dependencies from https://github.com/dotnet/arcade build 20190505.2 (dotnet#1883)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19255.2

* Update dependencies from https://github.com/dotnet/arcade build 20190506.12 (dotnet#1886)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19256.12

* [master] Update dependencies from dotnet/arcade (dotnet#1888)

* Update dependencies from https://github.com/dotnet/arcade build 20190507.7

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19257.7

* Update dependencies from https://github.com/dotnet/arcade build 20190508.5

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19258.5

* Update dependencies from https://github.com/dotnet/arcade build 20190509.9 (dotnet#1889)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19259.9

* Update dependencies from https://github.com/dotnet/arcade build 20190510.2 (dotnet#1890)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19260.2

* Update dependencies from https://github.com/dotnet/arcade build 20190511.1 (dotnet#1891)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19261.1

* Update dependencies from https://github.com/dotnet/arcade build 20190512.1 (dotnet#1892)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19262.1

* Update dependencies from https://github.com/dotnet/arcade build 20190513.3 (dotnet#1893)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19263.3

* [master] Update dependencies from dotnet/arcade (dotnet#1895)

* Update dependencies from https://github.com/dotnet/arcade build 20190514.13

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19264.13

* Update dependencies from https://github.com/dotnet/arcade build 20190516.2

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19266.2

* Update dependencies from https://github.com/dotnet/arcade build 20190516.4

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19266.4

* Update dependencies from https://github.com/dotnet/arcade build 20190517.7

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19267.7

* Update dependencies from https://github.com/dotnet/arcade build 20190518.2

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19268.2

* Update dependencies from https://github.com/dotnet/arcade build 20190520.1

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19270.1

* Update dependencies from https://github.com/dotnet/arcade build 20190520.2

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19270.2

* Updating the glob.json to include the 2.1.x version

* Update dependencies from https://github.com/dotnet/arcade build 20190521.7 (dotnet#1897)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19271.7

* Update dependencies from https://github.com/dotnet/arcade build 20190522.13 (dotnet#1898)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19272.13

* Update dependencies from https://github.com/dotnet/arcade build 20190523.11 (dotnet#1899)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19273.11

* Update dependencies from https://github.com/dotnet/arcade build 20190524.6 (dotnet#1901)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19274.6

* Update dependencies from https://github.com/dotnet/arcade build 20190528.1 (dotnet#1903)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19278.1

* Merging stabilize into master (dotnet#1904)

* Join macro

* Make default format for the GUID macro overridable

Fixes dotnet#1737

* Add links to the different template content repos in the readme

* Convert repo list to bullets

* Adding netstandard2.1 to the list of TFMs for 3.0

* Releases the original source location mount point

* Change Build pool for internal builds (dotnet#1823)

* Removing the SourceLink packages since it is provided by Arcade

* Lowercase the content include path in the template pack csproj files

* Add gitignore template

* Update azure-pipelines.yml

* Update web.config item template

This updates the web.config item template to align with what `dotnet publish` produces when publishing

* Update template_feed/Microsoft.DotNet.Common.ItemTemplates/content/WebConfig/web.config

Co-Authored-By: Justin Kotalik <jukotali@microsoft.com>

* Update --langVersion option's description

* Removing Microsoft.Extensions.CommandLineUtils references from the repo
GangWang01 pushed a commit to GangWang01/sdk that referenced this issue Jul 11, 2022
* Join macro

* Make default format for the GUID macro overridable

Fixes dotnet#1737

* Add links to the different template content repos in the readme

* Convert repo list to bullets

* Adding netstandard2.1 to the list of TFMs for 3.0

* Releases the original source location mount point

* Change Build pool for internal builds (dotnet#1823)

* Removing the SourceLink packages since it is provided by Arcade

* Lowercase the content include path in the template pack csproj files

* Add gitignore template

* Update azure-pipelines.yml

* Update web.config item template

This updates the web.config item template to align with what `dotnet publish` produces when publishing

* Update template_feed/Microsoft.DotNet.Common.ItemTemplates/content/WebConfig/web.config

Co-Authored-By: Justin Kotalik <jukotali@microsoft.com>

* Merge master into stabilize (dotnet#1905)

* Update dependencies from https://github.com/dotnet/arcade build 20190418.7 (dotnet#1867)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19218.7

* Update dependencies from https://github.com/dotnet/arcade build 20190422.2 (dotnet#1870)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19222.2

* Update dependencies from https://github.com/dotnet/arcade build 20190423.2 (dotnet#1871)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19223.2

* Update dependencies from https://github.com/dotnet/arcade build 20190424.9 (dotnet#1873)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19224.9

* Update dependencies from https://github.com/dotnet/arcade build 20190425.5 (dotnet#1874)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19225.5

* Update dependencies from https://github.com/dotnet/arcade build 20190426.3 (dotnet#1875)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19226.3

* Update dependencies from https://github.com/dotnet/arcade build 20190429.8 (dotnet#1876)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19229.8

* Update dependencies from https://github.com/dotnet/arcade build 20190430.6 (dotnet#1877)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19230.6

* [master] Update dependencies from dotnet/arcade (dotnet#1879)

* Update dependencies from https://github.com/dotnet/arcade build 20190501.6

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19251.6

* Update dependencies from https://github.com/dotnet/arcade build 20190502.2

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19252.2

* Update dependencies from https://github.com/dotnet/arcade build 20190503.8 (dotnet#1881)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19253.8

* Update dependencies from https://github.com/dotnet/arcade build 20190504.1 (dotnet#1882)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19254.1

* Update dependencies from https://github.com/dotnet/arcade build 20190505.2 (dotnet#1883)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19255.2

* Update dependencies from https://github.com/dotnet/arcade build 20190506.12 (dotnet#1886)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19256.12

* [master] Update dependencies from dotnet/arcade (dotnet#1888)

* Update dependencies from https://github.com/dotnet/arcade build 20190507.7

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19257.7

* Update dependencies from https://github.com/dotnet/arcade build 20190508.5

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19258.5

* Update dependencies from https://github.com/dotnet/arcade build 20190509.9 (dotnet#1889)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19259.9

* Update dependencies from https://github.com/dotnet/arcade build 20190510.2 (dotnet#1890)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19260.2

* Update dependencies from https://github.com/dotnet/arcade build 20190511.1 (dotnet#1891)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19261.1

* Update dependencies from https://github.com/dotnet/arcade build 20190512.1 (dotnet#1892)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19262.1

* Update dependencies from https://github.com/dotnet/arcade build 20190513.3 (dotnet#1893)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19263.3

* [master] Update dependencies from dotnet/arcade (dotnet#1895)

* Update dependencies from https://github.com/dotnet/arcade build 20190514.13

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19264.13

* Update dependencies from https://github.com/dotnet/arcade build 20190516.2

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19266.2

* Update dependencies from https://github.com/dotnet/arcade build 20190516.4

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19266.4

* Update dependencies from https://github.com/dotnet/arcade build 20190517.7

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19267.7

* Update dependencies from https://github.com/dotnet/arcade build 20190518.2

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19268.2

* Update dependencies from https://github.com/dotnet/arcade build 20190520.1

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19270.1

* Update dependencies from https://github.com/dotnet/arcade build 20190520.2

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19270.2

* Updating the glob.json to include the 2.1.x version

* Update dependencies from https://github.com/dotnet/arcade build 20190521.7 (dotnet#1897)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19271.7

* Update dependencies from https://github.com/dotnet/arcade build 20190522.13 (dotnet#1898)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19272.13

* Update dependencies from https://github.com/dotnet/arcade build 20190523.11 (dotnet#1899)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19273.11

* Update dependencies from https://github.com/dotnet/arcade build 20190524.6 (dotnet#1901)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19274.6

* Update dependencies from https://github.com/dotnet/arcade build 20190528.1 (dotnet#1903)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19278.1

* Merging stabilize into master (dotnet#1904)

* Join macro

* Make default format for the GUID macro overridable

Fixes dotnet#1737

* Add links to the different template content repos in the readme

* Convert repo list to bullets

* Adding netstandard2.1 to the list of TFMs for 3.0

* Releases the original source location mount point

* Change Build pool for internal builds (dotnet#1823)

* Removing the SourceLink packages since it is provided by Arcade

* Lowercase the content include path in the template pack csproj files

* Add gitignore template

* Update azure-pipelines.yml

* Update web.config item template

This updates the web.config item template to align with what `dotnet publish` produces when publishing

* Update template_feed/Microsoft.DotNet.Common.ItemTemplates/content/WebConfig/web.config

Co-Authored-By: Justin Kotalik <jukotali@microsoft.com>

* Update --langVersion option's description

* Removing Microsoft.Extensions.CommandLineUtils references from the repo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants