在运行时是否可以发现我自己编译的.NET Framework版本? 我正在编写的环境允许我编写在另一台机器上编译的C#,但我不知道哪个语言版本可用,而不是2.0 CLR。我想编写一个输出到日志文件的测试,指示目标框架。
为了实现这一点,我猜测编译的程序集必须携带该信息。
这个问题不是如何列出运行时计算机上的所有框架,因为所有版本都安装了当前版本。这不是该问题的重复。这也不是如何使用System.Environment.Version确定CLR的重复。我也没有尝试在编译时检测目标.NET运行时。这需要是运行时检测,因此我可以将其发送到日志。
答案 0 :(得分:0)
反编译器有时会告诉你。例如,Telerik的免费justdecompile显示了这一点,但不适用于所有程序集
在这里放大了一点
答案 1 :(得分:0)
此信息存储在程序集中,因为必须运行EXE文件。我用这个函数阅读了Target Framework:
TextInputLayout hintView = (TextInputLayout) findViewById(R.id.activity_login_inputlayout_password);
hintView.setHintAnimationEnabled(false);
hintView.setHint("");
yourEditTextPassword.setHint(getString(R.string.text_password_hint));
我故意明确了名称空间。