无法使用C#和Robert Giesecke的Unmanaged Exports工具创建非托管dll

时间:2013-11-29 14:58:25

标签: c# .net visual-studio-2010 unmanaged

我尝试使用Robert Giesecke的Unmanaged Exports在C#(VS2010)中创建非托管dll。这是我的测试代码:

using RGiesecke.DllExport;

namespace UnmanagedDllTest
{
    public class TestClass
    {
        [DllExport]
        public static int Add1(int n)
        {
            return n + 1;
        }
    }
}

当我构建这个时,我收到一个错误:

UnmanagedDllTest -> D:\Dev\UnmanagedDllTest\UnmanagedDllTest\bin\x86\Debug\UnmanagedDllTest.dll
D:\Dev\UnmanagedDllTest\packages\UnmanagedExports.1.2.6\tools\RGiesecke.DllExport.targets(42,5): error : C:\Users\user\AppData\Local\Temp\tmpD5A0\UnmanagedDllTest.il(60) : error : syntax error at token '{' in:   {
D:\Dev\UnmanagedDllTest\packages\UnmanagedExports.1.2.6\tools\RGiesecke.DllExport.targets(42,5): error : 

我做错了什么?

3 个答案:

答案 0 :(得分:2)

我花了一整天时间试图解决这个问题,最终我找到了解决方案! 我也有俄语窗口,在将VS2012更新到VS2013后,我的项目开始出现同样的错误:

  

错误:令牌{'中的语法错误:{

我试图更改环境变量,但这没有帮助。 唯一能帮到我的是改变非unicode程序的默认语言。您可以在“控制面板>语言和区域设置>附加>更改不支持Unicode的应用程序的语言”中找到此设置。我将语言改为英语,重新启动......并获利!

答案 1 :(得分:0)

问题可能出在俄语版的Windows上。来自俄罗斯的用户z3d1k和我也是。在.li文件中输入俄语注释。

答案 2 :(得分:0)

此错误已在分叉版本中修复。
DllExport/changelog.txt at 1f6b2d90599d17614782784c6b5bb37f05a2dea9 · 3F/DllExport

您可以使用以下命令重新安装来修复它。

UnInstall-Package UnmanagedExports 
Install-Package DllExport