繁体   English   中英

将目标框架从v4.0更改为v3.5后,找不到命名空间

[英]Namespace cannot be found after changing target framework from v4.0 to v3.5

我在解决方案中有2个项目,1个dll,另一个是exe。 两者都使用.net 4.0版,但没有使用4.0特定的库,所以我应该可以安全地将它们更改为3.5

我在两个项目属性下做了这个,我建立了dll罚款。 现在,当我尝试构建exe时,它无法找到dll的命名空间。 我已经读过参考文献,但它仍然无法看到它。 当我恢复.net版本时,它确实说我可能必须在构建之前修改项目文件。 我试图通过谷歌搜索解决方案,但我使用的关键词太常用了。 任何人都可以建议吗?

非常感谢,克里斯

编辑:尝试了以下..

  • 具体参考DLL,同时确保不是4.0副本
  • 删除bin和obj文件夹
  • 重启VS.

您尝试将其设置为项目引用,而不是引用输出DLL。

此外,你有没有完成解决方案的任何.Net 4.0文件挥之不去? 您可以通过删除bin和obj文件夹来手动清理项目。

您是否尝试从解决方案中删除项目,创建一个新的.net 3.5项目并进行编译。 然后在ddl项目中添加(添加 - >现有项目)并编译,然后在没有引用的情况下添加exe项目,编译然后在引用中添加。

奇怪的问题,但你还检查名称空间。 你可以在你的项目中调用namesapce,即using mydllproject.model.myengine

我会将您的项目文件打开为XML。 要执行此操作,请关闭soltion并仅通过单击“文件/打开”按钮上的向下箭头并选择“打开方式... XML(文本)编辑器”重新打开项目。 检查以确保每个项目的标题中都有ToolsVersion =“4.0”。 检查RootNamespace和TargetFrameworksVersion元素以查看它们是否具有您期望的值。 在文件的底部,检查ItemGroup中的ProjectReference元素。 确保项目引用中的GUID与解决方案文件中定义的GUID相匹配。

最后,确保在重建项目之前清理项目。 如果您正在使用源代码管理,请将项目签入新的空沙箱。

祝好运!

我有一个非常类似的问题。 就我而言,我在同一个解决方案中有两个项目,一个“类库”和一个Windows窗体应用程序。

在将两个项目的目标框架更改为.NET4.0框架,并在我的Windows窗体应用程序中添加对类库的引用之后,它将不会检测我的类库的命名空间。

以下是我所做的,最终解决了这个问题:

  1. 使用.NET 4.0框架作为目标框架创建了一个新项目。 我从原始解决方案中将所有表单和类导入到此项目中。

  2. 将现有类库添加为新项目。

  3. 从我的Windows窗体项目添加了对类库项目的引用

  4. 对于类库项目下的每个类文件,我将“Build Action”设置为“Compile”

  5. 右键单击类库项目并选择“重建”。

  6. 然后,当我进入我的Windows窗体项目时,我可以在使用' using namespace_name '语句时看到命名空间

注意:也许您不需要像我在前几个步骤中那样创建新项目。 但是改变Build Action肯定是有用的。

希望能帮助到你。

-Put dll和exe在3.5
- 仅编译dll
- 删除对dll的引用并读取它
- 重建解决方案

检查引用它们所需的目标运行时类型的DLL,尤其是“Engine.dll”。 例如,您可以使用.NET Refractor执行此操作。 如果它们是为v4.0编译的,那么你需要获得早期版本的.NET运行时版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM