在我的开发机器上从Windows XP迁移到Windows 7后,我遇到了一些奇怪的行为。
我在Visual Studio 2010中创建了一个WPF 4解决方案。该解决方案包括3个项目 - Common,MyApp和Infrastructure。我正在使用Prism 4.原始解决方案是在Windows XP上创建的,由于各种原因,我正在将其重建为新的解决方案。我已经添加了Common和MyApp,并且两者都是独立构建的。问题出在基础设施上。
为了重建项目,我创建了项目文件夹并添加了现有的代码文件。当我开始测试构建时,它很好。输入所有文件后,我现在在尝试构建时收到类似的错误(Resharper建议一切正常);
The type or namespace name 'Windows' does not exist in the namespace 'Infrastructure.System' (are you missing an assembly reference?) CircularProgressBar.g.cs
The type or namespace name 'Windows' does not exist in the namespace 'Infrastructure.System' (are you missing an assembly reference?) CircularProgressBar.xaml
The type or namespace name 'Delegate' does not exist in the namespace 'Infrastructure.System' (are you missing an assembly reference?) SearchView.g.cs
The type or namespace name 'CodeDom' does not exist in the namespace 'Infrastructure.System' (are you missing an assembly reference?) CircularProgressBar.g.cs
常见的主题是列出的所有文件都与XAML相关。 Infrastructure项目是WPF用户控件之一,所有xaml文件都有Page的Build Action。
现在真的很奇怪。为了尝试找出问题出现的地方,我开始逐一排除项目中的文件夹。我从使用InteractionRequests开始,因为我总是在这里遇到麻烦。没变。然后我排除了下一个(系统)和低,并看到解决方案构建并显示主窗口。所以,我开始逐个添加它们 - 例如,如果我在
中添加UserTypenamespace Infrastructure.System
{
public enum TypeOfUser
{
User,
Admin
}
public enum TypeOfTrialUser
{
User,
Admin
}
public enum UserAccessStatus
{
Granted,
Revoked
}
}
错误返回。再次排除它们,它们就消失了。与其他文件一样的故事,因此它与文件本身无关(正如您所期望的那样基于其中的内容)。当错误返回时,它仍然引用相同的xaml相关文件列表(* .xaml或* .g.cs)。
有什么想法吗?我不得不承认我对此完全感到困惑!可能与文件权限有关?智慧结束了......
答案 0 :(得分:0)
嗯,我解决了,但我不确定为什么这是一个问题。关键是名称空间Infrastructure.System - 将其重命名为Infrastructure.Sys,更新了using语句并成功更新了所有构建。某种故障?