我在visual studio proj2中创建了一个新项目,我希望它与proj1具有相同的程序集引用,所以我打开了proj1.csproj并复制了:
<ItemGroup>
<Reference Include="mscorlib" />
<Reference Include="system" />
<Reference Include="System.Windows" />
<Reference Include="System.Core" />
<Reference Include="System.Xml" />
<Reference Include="System.Net" />
<Reference Include="System.Windows.Browser" />
</ItemGroup>
并将其粘贴到proj1.csproj中。问题是我的System.Windows程序集引用旁边有一个感叹号,当我尝试单击它时,它说:
此项目无法在对象浏览器中查看,因为它不可用或尚未构建。请确保项目可用并已建成。
当然,在我的.cs文件中,它说
“System”命名空间中不存在类型或命名空间“Windows”(您是否缺少程序集引用?)
如何让我的程序集引用工作?
答案 0 :(得分:7)
转到项目属性并确保至少定位到Framework 3.0。
答案 1 :(得分:2)
System.Windows是WPF,它至少需要.NET 3.0才能成为项目的目标。
答案 2 :(得分:2)
根据您的更新评论,以下是Client Profile中的程序集列表。您可能需要引用完整的.NET 4 Framework才能使用System.Windows ...
另请注意System.Windows.dll does not encapsulate System.Windows命名空间;大部分名称空间分布在Presentation*.dll
程序集中。仔细检查第一个项目使用的实际引用是否出现在第二个项目中,对于初学者来说。
另请考虑发布.cs文件中导致此错误的代码;您在其中使用的类型实际上可能存在于未引用的不同程序集中。
答案 3 :(得分:2)
是的,听起来您的项目所针对的框架版本存在问题。尝试将proj2设置为与proj1具有相同的目标框架。
您可以通过右键单击Visual Studio中的解决方案资源管理器中的项目,选择“属性”,然后在“应用程序”选项卡中查看“目标框架”下拉列表来执行此操作。
或者,您可以打开.csproj文件并确保它们具有匹配的TargetFrameworkVersion标记。此标记通常位于文件顶部附近的ProperyGroup中。
答案 4 :(得分:0)
右键单击该项目,然后转到“添加引用”。
添加最新版本的System.Windows程序集。
然后它应该工作