November 08, 2018 Re: Dustmite + Visual D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Michelle Long |
On 08/11/2018 10:43, Michelle Long wrote:
> On Thursday, 8 November 2018 at 07:16:19 UTC, Rainer Schuetze wrote:
>>
>>
>> On 06/11/2018 04:09, Michelle Long wrote:
>>> D:\Projects\Game\Game\Game.dustmite\..\..\..\..\D\Libraries\pegged\dynamic\grammar.d:
>>>
>>> The process cannot access the file because it is being used by another process.
>>>
>>
>> I can reproduce it now, but it has nothing to do with links/junctions.
>>
>> The problem is that the shown file is outside of the project folder hierarchy. Visual D tries to recreate the projects folder structure, so it copies
>>
>> D:\Projects\Game\Game\Game\..\..\..\..\D\Libraries\pegged\dynamic\grammar.d
>>
>>
>> to
>>
>> D:\Projects\Game\Game\Game.dustmite\..\..\..\..\D\Libraries\pegged\dynamic\grammar.d
>>
>>
>> which is the same file!
>>
>> A simple workaround is to use a junction in the project folder to access pegged.
>>
>> I guess Visual D should not copy files outside of the project folder, but they are also not subject to dustmite in that case.
>>
>> Alternatively, the dustmite directory could be created in a common parent folder for all files, but that doesn't work for files distributed over different drives.
>
> whoo! ;) That dogged a bullet! Glad you were able to figure it out.
>
> I am using a junction!
>
> I have my libs in D\Libraries.
>
> In my project I have a junction that points to it.
>
> I dragged that junction to VS to add the files.
>
> So they don't exist at the same place.
>
> Visual D seems to copy some of the files.
>
> Maybe the better solution would just be to delay and repeat.
>
> If somehow it is copying two files simultaneously then the delay and retry might a few times will just copy it twice(it would have to override it).
>
> Or maybe just check if the file already exists and avoid copying it? (although the grammar.d file that it complained about was never copied, so this probably won't work)
>
> Maybe you could simply record any failures and try them at the end.
>
> Here I'm assuming the locking is temporary and will disappear quickly enough given that I can never see the file being locked.
>
>
I suspect there is still a misunderstanding: your project very likely still refers to these files via a relative path, not through the junction. You can verify this by looking at the list of files at the end of the .visualdproj file with a text editor.
|
November 08, 2018 Re: Dustmite + Visual D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Rainer Schuetze | > > I suspect there is still a misunderstanding: your project very likely still refers to these files via a relative path, not through the junction. You can verify this by looking at the list of files at the end of the .visualdproj file with a text editor. Ok, you are right. I think i might have dragged some items in manually from the file explorer after I removed them thinking I didn't need them after I dragged in the junction. I noticed this: <File path="Libraries\arsd\color.d" /> <File path="Libraries\arsd\gamehelpers.d" /> <File path="..\..\..\Game\Game\Libraries\arsd\png.d" /> <File path="Libraries\arsd\simpledisplay.d" /> <File path="Libraries\arsd\stb_truetype.d" /> (note that they are all the same paths!) In any case, it should be an easy fix either way? Maybe the relative paths are causing D's file routines to crap out? |
November 09, 2018 Re: Dustmite + Visual D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Michelle Long | On Thursday, 8 November 2018 at 23:09:53 UTC, Michelle Long wrote: >> >> I suspect there is still a misunderstanding: your project very likely still refers to these files via a relative path, not through the junction. You can verify this by looking at the list of files at the end of the .visualdproj file with a text editor. > > > Ok, you are right. I think i might have dragged some items in manually from the file explorer after I removed them thinking I didn't need them after I dragged in the junction. > > I noticed this: > > <File path="Libraries\arsd\color.d" /> > <File path="Libraries\arsd\gamehelpers.d" /> > <File path="..\..\..\Game\Game\Libraries\arsd\png.d" /> > <File path="Libraries\arsd\simpledisplay.d" /> > <File path="Libraries\arsd\stb_truetype.d" /> > > (note that they are all the same paths!) > > In any case, it should be an easy fix either way? > > Maybe the relative paths are causing D's file routines to crap out? So, this is definitely the reason for the errors. I manually removed the ..\'s and was able to get the project to copy. Note that when the files are separately dragged in they can produce different results. The paths are valid but but it seems like the copy routines do not understand relative and mixed paths. Now I get created clean copy of the project in D:\Projects\Game\Game\Game.dustmite Failed to make stdin stream inheritable by child process (Access is denied.) so now getting that error about stdin that I get from a fresh project... this seems like a bug in Visual D too. |
November 09, 2018 Re: Dustmite + Visual D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Michelle Long | On 09/11/2018 01:57, Michelle Long wrote: > On Thursday, 8 November 2018 at 23:09:53 UTC, Michelle Long wrote: >>> >>> I suspect there is still a misunderstanding: your project very likely still refers to these files via a relative path, not through the junction. You can verify this by looking at the list of files at the end of the .visualdproj file with a text editor. >> >> >> Ok, you are right. I think i might have dragged some items in manually from the file explorer after I removed them thinking I didn't need them after I dragged in the junction. >> >> I noticed this: >> >> <File path="Libraries\arsd\color.d" /> >> <File path="Libraries\arsd\gamehelpers.d" /> >> <File path="..\..\..\Game\Game\Libraries\arsd\png.d" /> >> <File path="Libraries\arsd\simpledisplay.d" /> >> <File path="Libraries\arsd\stb_truetype.d" /> >> >> (note that they are all the same paths!) >> >> In any case, it should be an easy fix either way? >> >> Maybe the relative paths are causing D's file routines to crap out? > > So, this is definitely the reason for the errors. I manually removed the ..\'s and was able to get the project to copy. > > Note that when the files are separately dragged in they can produce different results. > > The paths are valid but but it seems like the copy routines do not understand relative and mixed paths. > > Now I get > > created clean copy of the project in D:\Projects\Game\Game\Game.dustmite Failed to make stdin stream inheritable by child process (Access is denied.) > > so now getting that error about stdin that I get from a fresh project... this seems like a bug in Visual D too. > This is probably a recently fixed problem in std.process and should be fine in https://github.com/dlang/visuald/releases/tag/v0.48.0-beta2 |
December 15, 2018 Re: Dustmite + Visual D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Michelle Long | still having problems with this. My csproj file uses relative paths and backtracks. ..\somepath. When I replace ..\somepath with the absolute path such as `c:\somepath` the project copying works. We talked about this and I thought things were fixed so I'm not sure what is going on still. I'd like to avoid using absolute paths if possible because it makes harder copying the project to a new project at a different path if I need to do that. Seems that .. is simply not handled properly by something. |
Copyright © 1999-2021 by the D Language Foundation