2010-11-11 231 views
0

在visual studio中,我创建了对Aspose程序集的引用,并在我的代码中使用了Document类。它在设计时看起来很好,但是当我去编译时,我得到的错误'Type Aspose.Words.Document'没有定义。'如果我做了任何改变项目文件的事情,比如添加或删除一个引用或添加一个新文件,这些错误就会消失......直到我再次尝试编译为止。错误'类型Aspose.Words.Document'未定义。'当试图编译

有没有其他人看到这种奇怪的行为,并知道如何解决它?这是我的代码,如果它很重要,但它并没有变得更简单:

Module Module1 

    Sub Main() 

     Dim license As New Aspose.Words.License() 
     license.SetLicense("Aspose.Words.lic") 

     Dim files = My.Resources.files.Split() 

     For Each file In files 
      If file <> "" Then 
       Dim changed As Boolean = False 
       Console.Write("Processing " & file & "...") 

       Dim doc = New Aspose.Words.Document(file) 

       If doc.Range.FormFields("CurrDate") IsNot Nothing Then 
        doc.Range.FormFields("CurrDate").TextInputType = Aspose.Words.Fields.TextFormFieldType.RegularText 
        doc.Range.FormFields("CurrDate").TextInputFormat = "" 
        doc.Save(file) 
        Console.WriteLine("done.") 
       Else 
        Console.WriteLine("not applicable.") 
       End If 

      End If 

     Next 
     Console.Read() 
    End Sub 

End Module 

回答

1

我发现它必须是因为dll的目标是不同于项目中指定的框架。我创建了一个新的控制台应用程序,目标是3.5而不是4.0,并开始工作。

0

是否有多个库可供参考?另外,您的进口声明在哪里?

+0

只有一个库,我不需要导入语句,因为它们是完全限定的,对吗? – adam0101 2010-11-11 21:56:32

0

检查您是否引用了正确的Aspose dll(包含Document类的文件)。验证Document类是否在Aspose.Words名称空间下。

破解打开dll里面的Reflector来验证这个东西。

+0

我使用的是正确的dll。当我第一次添加dll时,文档类在intellisense中显示。在我尝试编译之后,就像删除了引用。甚至连“Aspose”命名空间都不再出现在intellisense中。如果我放弃参考并将其添加回来,那么错误消失,智能感知再次看到 - 直到我再次尝试编译。 – adam0101 2010-11-11 22:04:37

+0

听起来像是你的环境问题。这是否与其他dll一起发生? – 2010-11-11 22:53:12

0

确保将组件上的Copy Local设置为true,并将Embed Intrerop设置为false。

+0

这些设置在哪里? – adam0101 2010-11-12 14:12:50

+0

@ adam0101在解决方案资源管理器中,右键单击引用下的程序集,转至属性,然后您应该看到那些列表。 – 2010-11-15 07:08:07