Support long paths for NTFS #1944

Merged
merged 1 commit into from Oct 10, 2016

Conversation

Projects
None yet
4 participants
@johannesegger
Contributor

johannesegger commented Oct 6, 2016

According to this blog post there are two ways to enable support for long paths in .NET applications for Windows 10: either target .NET 4.6.2 (1) or add some special app.config and app.manifest settings (2).

This PR implements (2).

app.config got formatted and this line is the important thing I added.

Since paket.res is a binary file and git doesn't provide a nice diff view, I'll try it here:

Before:
devenv_2016-10-06_22-10-33

After:
devenv_2016-10-06_22-07-52
I don't know why I had to put this under "RT_MANIFEST". I got this from powershell.exe.
Content of RT_MANIFEST/1 is copied from the blog post linked above:

<application xmlns="urn:schemas-microsoft-com:asm.v3">
  <windowsSettings>
    <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
  </windowsSettings>
</application>

I couldn't figure out a nice way to test this so I only tried it locally.
Do you think paket.bootstrapper should have this as well?

@0x53A

This comment has been minimized.

Show comment
Hide comment
@0x53A

0x53A Oct 6, 2016

Contributor

I think you can use a xml manifest and modify the .fsproj

see http://stackoverflow.com/questions/26161113/how-do-i-embed-application-manifest-in-f-application

Contributor

0x53A commented Oct 6, 2016

I think you can use a xml manifest and modify the .fsproj

see http://stackoverflow.com/questions/26161113/how-do-i-embed-application-manifest-in-f-application

@johannesegger

This comment has been minimized.

Show comment
Hide comment
@johannesegger

johannesegger Oct 7, 2016

Contributor

You mean an app.manifest? I tried that but it seems you can't have both a .res file and a .manifest file (see here - I know this is for C# but I got the same error from the F# compiler).

Contributor

johannesegger commented Oct 7, 2016

You mean an app.manifest? I tried that but it seems you can't have both a .res file and a .manifest file (see here - I know this is for C# but I got the same error from the F# compiler).

@0x53A

This comment has been minimized.

Show comment
Hide comment
@0x53A

0x53A Oct 7, 2016

Contributor

ah, I think you are correct - nevermind then. I just thought a xml manifest was a bit easier to modify than some binary res file.

Contributor

0x53A commented Oct 7, 2016

ah, I think you are correct - nevermind then. I just thought a xml manifest was a bit easier to modify than some binary res file.

@johannesegger

This comment has been minimized.

Show comment
Hide comment
@johannesegger

johannesegger Oct 7, 2016

Contributor

I thought so too... until I got that compiler error :-)

Contributor

johannesegger commented Oct 7, 2016

I thought so too... until I got that compiler error :-)

@forki forki merged commit 9bd5d7b into fsprojects:master Oct 10, 2016

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

@johannesegger johannesegger deleted the johannesegger:ntfs-long-path branch Oct 10, 2016

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Oct 10, 2016

Member

Have to revert that. #1955 (comment)

It seems to break people

Member

forki commented Oct 10, 2016

Have to revert that. #1955 (comment)

It seems to break people

@johannesegger

This comment has been minimized.

Show comment
Hide comment
@johannesegger

johannesegger Oct 10, 2016

Contributor

Hm, sry about that, I hoped it would just be ignored. I currently can't find a way around it unfortunately.

Contributor

johannesegger commented Oct 10, 2016

Hm, sry about that, I hoped it would just be ignored. I currently can't find a way around it unfortunately.

@0x53A 0x53A referenced this pull request Jul 16, 2017

Open

LongPath support #2529

@matthid

This comment has been minimized.

Show comment
Hide comment
@matthid

matthid Jul 20, 2017

Member

Question is are we able to set the app.config dynamically when we detect windows 10 (for example via bootstrapper)?

Member

matthid commented Jul 20, 2017

Question is are we able to set the app.config dynamically when we detect windows 10 (for example via bootstrapper)?

@0x53A

This comment has been minimized.

Show comment
Hide comment
@0x53A

0x53A Jul 20, 2017

Contributor

that wouldn't work when you call paket.exe directly. Or it would need to copy itself to temp, modify the app config, and relaunch it.

Contributor

0x53A commented Jul 20, 2017

that wouldn't work when you call paket.exe directly. Or it would need to copy itself to temp, modify the app config, and relaunch it.

@0x53A

This comment has been minimized.

Show comment
Hide comment
@0x53A

0x53A Jul 20, 2017

Contributor

Our buildservers don't have internet, so we just check in paket.exe directly

Contributor

0x53A commented Jul 20, 2017

Our buildservers don't have internet, so we just check in paket.exe directly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment