我正在尝试在 Visual Studio 2010 中使用 C# 构建我的第一个 Winforms。它只是一个简单的表单,带有一个关闭表单的按钮单击事件。 这是代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnEnglish_Click(object sender, EventArgs e)
{
this.Text = " Do you speak English? ";
}
private void btnSpanish_Click(object sender, EventArgs e)
{
this.Text = " Do you speak Spanish? ";
}
private void btnOk_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
这似乎是我的项目中缺少一些配置属性或类似的东西,因为我无法找出到底是什么?
一些搜索让我找到了http://msdn.microsoft.com/en-us/library/fa13yay7.aspx,但我不确定如何在我的代码或项目属性中应用它,或者是否存在其他问题?
也许MS Connect上的这个答案与您的问题有关。 MS团队评论:
这是一个已知问题,我们无法在 VS2010 中修复。这 一旦遇到这种情况,解决方法是编辑项目文件并 手动重新添加引用
因此,在您的 .csproj 文件中,添加缺少的引用:
<ItemGroup>
<Reference Include="mscorlib" />
有几点需要注意,
在您的问题中,请提供足够的详细信息。你连错误信息都不贴出来,很难加入讨论。
了解 MSBuild 如何将项目转换为 C# 命令行。
后者很难实现,但如果您启用 MSBuild 的详细日志记录,您将看到大量日志条目,向您显示幕后内容。
关于
mscorlib
的引用,大多数情况下是隐含的。正常情况下没有<Reference Include="mscorlib">
,也没有<NoStdLib>True</NoStdLib>
。这样,MSBuild 将使用 /nostdlib- 调用 C# 编译器。
对于某些项目类型(通常是.NET CF 项目),VS 将
<NoStdLib>True</NoStdLib>
添加到项目文件中,并将 <Reference Include="mscorlib">
添加到相应平台的 mscorlib.dll
中。可以在此处找到示例文件。这样,MSBuild 通过 /nostdlib+ 调用 C# 编译器。
因此,如果您遇到任何与 mscorlib 相关的编译问题,请检查您的项目文件以及 MSBuild 详细日志记录。这应该可以让您轻松知道出了什么问题。