我得到一个:

找不到类型或名称空间名称

错误的c# WPF应用程序在VS2010。这部分代码编译得很好,但突然就出现了这个错误。我已经尝试删除项目引用和using语句,关闭VS2010并重新启动,但我仍然有这个问题。

有什么想法,为什么这可能会发生,似乎我在做正确的事情re Reference & using语句?

我还注意到在VS2010,智能感知的名称空间是工作的好,所以它似乎VS2010有项目引用,是看到名称空间在一方面,但在编译期间没有看到它?


当前回答

我在试图以代理的身份在本地机器上运行Visual Studio Team Services构建时遇到此错误。

它在我的常规工作空间中工作得很好,我能够在本地代理文件夹中打开SLN文件,一切都编译好了。

有问题的DLL存储在项目中Lib/MyDLL.DLL,并在csproj文件中引用此DLL:

<Reference Include="MYDLL, Version=2009.0.0.0, Culture=neutral, PublicKeyToken=b734e31dca085caa">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>Lib\MYDLL.dll</HintPath>
</Reference>

结果是,尽管有提示路径,它还是找不到文件。我认为msbuild可能是相对于SLN文件而不是项目文件。

在任何情况下,如果您得到的消息是无法解析此引用。无法定位程序集,请确保DLL位于msbuild可访问的位置。

我有点作弊,发现一条消息说“参考\bin\xxx.dll”,然后把dll复制到那里。

其他回答

对于那些在试图将网站发布到Azure时遇到这种错误的人来说,上面这些看起来很有希望的解决方案都没有帮助到我。我也在同一条船上——我的解决方案本身构建得很好。最后我不得不这么做

把我溶液里的鸡块都去掉。 关闭并重新打开我的溶液。 重新添加所有的nuget包。

有点痛苦,但这是我能让我的网站发布到Azure的唯一方法。

首先,我将验证您的项目生成的信息是否损坏。在解决方案上进行清理和重新构建。

如果这还不起作用,我在过去看到的一种解决设计器问题的方法是打开一个windows窗体项目,然后再次关闭它。这有点像鸡内脏,所以别抱太大希望。

检查包含缺失类型的.cs文件的构建操作。确保它是c#编译器。

单击包含缺失类型的.cs文件。 按F4调出Properties。 确保构建动作设置为c#编译器。

之前:

后:

有同样的错误,我的故事如下: 在糟糕的合并(通过git)后,我的一个.csproj文件有重复的编译条目,如:

<Compile Include="Clients\Tree.cs" />
<Compile Include="Clients\Car.cs" />
<Compile Include="Clients\Tree.cs" />        //it's a duplicate

如果您有一个大的解决方案,并且错误窗口中有超过300条消息,那么很难检测到这个问题。 所以我已经通过记事本打开了损坏的.csproj文件,并删除了重复的条目。对我来说很管用。

我知道这是老问题了,但我也发现了同样的问题。我的项目确实构建了,然后我将Visual Studio更新到最新&项目不会构建,因为它无法从单独的程序集找到类型定义。另一个程序集构建OK,主项目正确地引用了它&自从它构建OK以来没有任何变化。

我清理了整个解决方案并重新构建了它,它失败了。我自己做了这个组件,它做得很好。这个工程没有建成。我多次清洁和建造,但它失败了。然后我叫了一个同事去看,当我在他的监视下建造时,一切都建好了。

我认为Visual Studio工具是问题所在,特别是我刚刚更新了它。