VS2012 projects don't xbuild on Linux #75
Comments
You need to call the following in your bash before running xbuild, and it works:
this fixes |
OK, that seems reasonable. We should verify the problem goes away with a latest build of Mono. |
What do you mean with "mono guys already fixed this globally"? Now that I think about this, I recall that at some point xbuild has received some commits in regards to MONO_IOMAP behaviour. |
i mean, that mono has the |
So the user would still have to manually set MONO_IOMAP? That's not enough - we need to have VS2012 projects build on linux without change and without setting environment variables. In this case we should go back to installing as Microsoft.FSharp.Targets. |
The fix is not hard see funnelweb@9c538e5 (It is frustrating to see we have a CRLF <--> LF change in FSharpSource.targets in that commit - I have no idea why git decided to CRLF --> LF on all of FSharpSource.targets - the current .getattributes is 'auto' and seems the right setting to use, so maybe this is just normalizing it back to something sensible.) |
The point it, that you usually need to set MONO_IOMAP anyway if you work with paths. And you won't be able to guarantee that VS2012 projects build without the setting. If nothing else, then you don't have control over FAKE scripts and they run into exactly the same problem. It's really a matter of setting the variable before running xbuild (or FAKE for that matter) |
I see, though it is not good enough. Simple VS2012 projects must build out of the box on linux using 'xbuild', and they seem to apart from the Exists(...targets) v. Exists(...Targets ) problem. Other file operations in xbuild are case insensitive without needing environment variables We can't expect user of MonoDevelop to set environment variables etc.The baseline we have to reach is that 'xbuild' works on VS2012 projects without the environment variable. p.s. the behavior of FAKE is not the question here because FAKE is not part of fsharp/fsharp - if FAKE needs the environment variable then that's up to @forki et al to document over in fsharp/FAKE. |
Fair enough, if it works that way, that's even better. |
Can someone give advice on what the crlf/text .gitattributes setting for this project should be?
It could be we should stick with text=auto and that FSharpSource.targets was just in some funny state due to a previous botched normalization. |
Now that I look at it there has been previous CRLF trauma with this file. I think we should just stick to
now and pay the cost of another change. Presumably github will now look after things automatically from here on. Some previous checkins giving wholesale CRLF changes in that file have been |
use Microsoft.FSharp.Targets to fix fsharp#75
We've been getting bug reports which don't include good repro steps. Unfortunately GitHub doesn't seem to give the ability to give a predefined template for issue reports, which is a real shame, since having a predefined template really helps improve the quality of reports. As a partial step in that direction we can at least add something to CONTRIBUTING.md to explain what we expect minimally. closes fsharp#75
VS2012 project use Exists('....Microsoft.FSharp.Targets') but xbuild 'Exists' is currently case-sensitive on Linux and the targets file is installed as Microsoft.FSharp.targets.
xbuild should be fixed to be case-insensitive since the aim is compat with msbuild. The fix would take some time to propagate, and in the meantime we should go back to installing as Microsoft.FSharp.Targets
The text was updated successfully, but these errors were encountered: