我得到一个:
找不到类型或名称空间名称
错误的c# WPF应用程序在VS2010。这部分代码编译得很好,但突然就出现了这个错误。我已经尝试删除项目引用和using语句,关闭VS2010并重新启动,但我仍然有这个问题。
有什么想法,为什么这可能会发生,似乎我在做正确的事情re Reference & using语句?
我还注意到在VS2010,智能感知的名称空间是工作的好,所以它似乎VS2010有项目引用,是看到名称空间在一方面,但在编译期间没有看到它?
我得到一个:
找不到类型或名称空间名称
错误的c# WPF应用程序在VS2010。这部分代码编译得很好,但突然就出现了这个错误。我已经尝试删除项目引用和using语句,关闭VS2010并重新启动,但我仍然有这个问题。
有什么想法,为什么这可能会发生,似乎我在做正确的事情re Reference & using语句?
我还注意到在VS2010,智能感知的名称空间是工作的好,所以它似乎VS2010有项目引用,是看到名称空间在一方面,但在编译期间没有看到它?
当前回答
在将一些新代码合并到vs2019项目后遇到了同样的问题。 重新启动VS,卸载和重新加载项目,确保解决方案中所有项目ToolsVersion=和TargetFrameworkVersion相同。这些都无济于事。
我有一个项目基板的情况,未能找到名称空间皮肤(在项目皮肤)。
最后我打开了基板。并检查了所有的ProjectReference Include条目。其他的都在那里,但没有对Skin的引用,即使Skin确实显示在小项目依赖对话框的复选框中。因此,项目依赖关系对话框接受了皮肤的复选框(并将其保存在某个地方),但没有改变basis .csproj。然后我手动添加ProjectReference Include,确保我拥有皮肤项目的正确路径和GUID。
< ProjectReference Include = " \ Skin皮肤csproj”>。 < > {1ad4b5d7-5014-4f5f-983e-2c59ac0e0028} < - >项目项目 < Name > Skin - < Name > < / ProjectReference >
然后我保存了基板。Csproj,问题就解决了。正如其他人所说,这是VS工具的一个问题
其他回答
对于那些在试图将网站发布到Azure时遇到这种错误的人来说,上面这些看起来很有希望的解决方案都没有帮助到我。我也在同一条船上——我的解决方案本身构建得很好。最后我不得不这么做
把我溶液里的鸡块都去掉。 关闭并重新打开我的溶液。 重新添加所有的nuget包。
有点痛苦,但这是我能让我的网站发布到Azure的唯一方法。
我知道这是老问题了,但我也发现了同样的问题。我的项目确实构建了,然后我将Visual Studio更新到最新&项目不会构建,因为它无法从单独的程序集找到类型定义。另一个程序集构建OK,主项目正确地引用了它&自从它构建OK以来没有任何变化。
我清理了整个解决方案并重新构建了它,它失败了。我自己做了这个组件,它做得很好。这个工程没有建成。我多次清洁和建造,但它失败了。然后我叫了一个同事去看,当我在他的监视下建造时,一切都建好了。
我认为Visual Studio工具是问题所在,特别是我刚刚更新了它。
首先,我将验证您的项目生成的信息是否损坏。在解决方案上进行清理和重新构建。
如果这还不起作用,我在过去看到的一种解决设计器问题的方法是打开一个windows窗体项目,然后再次关闭它。这有点像鸡内脏,所以别抱太大希望。
我在试图以代理的身份在本地机器上运行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复制到那里。
在我的案例中,问题是在将命名空间更改为与另一个项目中的名称完全相同之后(有意地),程序集的名称也被VS更改了,因此有两个具有相同名称的程序集,其中一个覆盖了另一个