-
-
Notifications
You must be signed in to change notification settings - Fork 133
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
"error: syntax error at token '.' in .interfaceimpl type..." #205
Comments
Hello, Thanks for the detailed report! It's really appreciated! You can try Use our IL Assembler option, seems it helps. I'll look into later for details but it looks like a bug exactly in 3rd-party MS IL Assembler because the same instructions still are valid in my version. Also note Rebase System Object option in case of some unexpected exceptions at runtime since you're targeting netstandard |
Switching to Not sure if this is related to switching to this option or if the behavior was there the whole time and I just didn't realize before. (I can move this to a new topic if needed.) Now each time I build my solution, my project with DllExports in it re-builds (or well, at least re-outputting the DLL) every time. It's a project that's early on in my chain, so it's slowing things down considerably, as is taking 10-15 seconds each time. Have I done something wrong that's causing it to appear "out of date" to msbuild each time? |
Hi Denis, I've hit a bit of a roadblock with |
Hi Chris, the .line feature yet controlled by this issue 3F/coreclr#3 And I'm not really sure when I'll be ready to do something with it
I'm sorry today it's too hard to me again to say something about anything at all. Thank you for your interest to my projects! I'll try to review any actual issues later as possible for me. Regarding to,
Yes, please open a new one. It could be either a bug or simply unwanted behavior which can be reviewed independently. With best regards, |
I know this feeling entirely! 😅 And no worries, I appreciate all the effort you put in. For now, I've fallen back to targeting the .NET Framework 4.8 and that seems like it's going to be a viable workaround while I'm developing: I'm able to use the default IL Asm (thus getting the PDBs), and don't get stuck with the issue opened with this ticket. It's not my long-term solution as I do hope I'll be able to target .NET proper (via .NET Standard) in the future, but this gets me 90% of the way there!
Will do, when I can craft a standalone example that recreates it. It doesn't happen with all of the changes I mention above switching framework, IL asm, etc, so I'd like to narrow it down before submitting something on it. Thanks again for taking a look! |
Steps to reproduce:
DllExport -version
: v1.7.4.29858+c1cc52fInformation from
Data
tab or log data:data tab: dllexport-data-tab.txt
msbuild with /v:diag: build.log
Project Sample
Project zip: DllExport-Error-LibSandbox.zip
This is the code from
Example.cs
, but the entire project has been attached, so you may see myDllExport
settings, as well as the overall project settings.N.B.: This error becomes evident when built with C# language version 8+, with nullable reference types enabled. Using a Language version 7.3 or lower (no NRT), or setting nullable reference types to any setting other than
enabled
will not produce the error.Details
So this is a truly bizarre one that I've stumbled across today. I've narrowed it down to a very minimal reproducible example. It appears to be a combination of nullable reference types, and interface implementations.
With the project exactly as it is in the zip above, trying to rebuild will yield the error:
However, it seems to be extremely dependant on a number of things. Below, I've listed some modifications. Any single one of the changes below will allow the project to build successfully. Undo the change, and the error returns.
IFooProvider.Inst
(and subsequentlyFooProvider.Inst
)IFooProvider.Bar
(and subsequentlyFooProvider.Bar
)IFooProvider.Bar
to take anint
instead ofobject
(and subsequentlyFooProvider.Bar
)IFooProvider.Bar
(and subsequentlyFooProvider.Bar
)#nullable disable
at the top ofExample.cs
<Nullable>enable</Nullable>
inLibSandbox.csproj
to<Nullable>warnings</Nullable>
[DllExport]
fromExample.Baz
FooProvider
class.Perhaps some other things would work around this issue, too.
Naturally, (as I'm sure you could imagine), I'm unable to make any of the changes in my actual project, which is why I've turned to posting here.
Let me know if there's more information I can provide!
The text was updated successfully, but these errors were encountered: