1

我希望其他人遇到过这个,因为它让我发疯。

我最近买了一台新笔记本电脑,所以我一直在设置我的 Visual Studio 解决方案(带有 .NET 4.0 的 VS2010),这是我从旧机器上保存下来的。其中之一是一个简单的控制台应用程序,我用它来模拟一些用于测试的东西。它引用了我现在正在研究的另一个解决方案中的 2 个程序集。这过去一切正常,但自从搬到新机器后,我得到了可怕的“找不到类型或命名空间名称'YourAssembly'(您是否缺少 using 指令或程序集引用?”错误消息。引用在 Visual Studio 中清楚地显示,但是当项目构建时,它不会将它们复制到解释消息的 bin 目录中。最初,我只是像任何 3rd 方 dll 一样引用 dll,但我什至尝试删除它并将项目文件包含在我的解决方案中并以这种方式引用它们,但仍然失败。我已经验证了 dll 的“复制本地”属性设置为 true,并且确实如此。这真的很奇怪,因为该项目引用了其他几个只是 3rd 方程序集的 dll(例如 NLog、GData 等),并且由于某些奇怪的原因,这些都可以很好地复制,但不是这两个。

这是另一件奇怪的事情。如果我向控制台应用程序添加一些引用我的程序集的代码,它会说它找不到它。如果我然后将程序集重新添加到引用中,错误就会消失,直到我尝试再次构建它然后它返回。这是VS错误还是什么?我以前从未见过这种奇怪的行为。

谢谢

4

3 回答 3

1

我看到的一个案例导致了您所说的问题:

包括对内部构建的 dll 的引用,链接到特定版本的 dll。获取 dll 的新副本(具有不同的版本号)并且构建中断。

这种情况下的解决方案是将 DLL 引用属性设置Specific Version为 false。dll 的版本被忽略(在我的情况下,忽略它是安全的),并且构建工作正常。

于 2012-06-06T20:25:01.307 回答
1
  1. 我也遇到过类似这样的奇怪错误,其中 NTFS 权限是在使用旧登录名的旧文件上设置的,但新机器不喜欢旧权限。
  2. 此外,有时旧的 .sln 或 .csproj 文件指的是您似乎无法在 VStudio 中编辑的奇怪文件路径。尝试使用记事本打开这些文件并确保路径没有损坏。您通常可以使用固定路径进行编辑和保存,然后一切都会恢复正常。
于 2012-06-06T20:48:00.587 回答
1

汉斯有上面的答案,但我无法通过搜索找到那个帖子,所以希望如果你偶然发现这个问题,我可以为你节省几个小时的挫败感。

由于某些奇怪的原因,“目标框架”在项目属性中默认为“.NET Framework 4 - 客户端配置文件”。我仔细检查过,每当我创建一个新的控制台应用程序时,它似乎都会这样做。它必须与VS中的版本相关,因为我在2010年之前没有遇到过这个问题。

修理:

  1. 右键单击您的项目,选择属性
  2. 在主应用程序选项卡下,将目标框架设置为您选择的框架,但不是“客户端配置文件”选项之一
  3. 正常保存和构建
于 2012-06-07T11:56:46.100 回答