我在我的计算机上安装了VS2010和VS2012,并安装了.NET Framework 4.0,然后升级到.NET Framework 4.5.但是,我仍在开发需要在.NET Framework 4.0上运行的应用程序.该项目表示它的目标是.NET Framework 4(客户端配置文件),程序集甚至指向Referenced Assemblies下的.NET Framework 4.0文件夹.当我将这个应用程序移动到只有4.0它不能启动并且出现错误的机器时,问题就出现了,这是一个异常,WindowState={Binding WindowState}因为你不能在4.0中完成,但你可以在4.5中完成.我需要这个在我的开发盒上抛出异常,为什么不呢?我的假设是,尽管我尽了最大的努力,但如果存在的话,它会使用4.5个dll.如何在没有卸载4.5的情况下使其真正使用4.0?
更新
要重新安装,请安装.NET Framework 4.5并创建一个面向.NET Framework 4.0的WPF项目.将WindowState绑定到VM或后面的代码中的属性使此属性具有公共get和private集.即使Mode = TwoWay必须忽略.NET Framework 4没有设置并且抛出异常,.NET Framework 4.5也可以处理这个问题:"TwoWay或OneWayToSource绑定不能对类型的只读属性'State'起作用. ".在.NET Framework 4.5的框中就像魅力一样在只有.NET Framework 4.0的机器上尝试它并且它会爆炸...所以有关如何在安装4.5时真正定位4.0的想法?
这里有关于MS的错误报告:https://connect.microsoft.com/VisualStudio/feedback/details/774694/targeting-net-framework-4-0-when-4-5-doesnt-seem-to-work
c# .net-4.0 visual-studio-2010 .net-framework-version .net-4.5
我有我的电脑配置:
我的项目配置是:
该项目是在Windows 7机器上使用VS2010为WP7.1编写的.现在我已经将PC升级到Windows 8并安装了VS2012.
然而,该项目抱怨'异步'修饰符.
找不到'async'修饰符所需的所有类型.您是否针对错误的框架版本,或缺少对程序集的引用?
知道如何解决这个问题吗?
谢谢!
c# .net-framework-version windows-phone-7 async-await visual-studio-2012
当我有一个.NET Core控制台应用程序项目将其TargetFramework属性(在.csproj中)设置为完整.NET Framework的一个版本时,我想知道这意味着什么.
<TargetFramework>net461</TargetFramework>
Run Code Online (Sandbox Code Playgroud)
我有以下一段代码。
class Program
{
static void Main(string[] args)
{
Enterprise.Initialize("Awesome Company");
// Assertion failed when constructor of 'Reg' class is disabled.
Debug.Assert(Reg.Root == @"Software\Awesome Company");
}
}
public static class Enterprise
{
// Static Properties.
public static string Company
{
get;
private set;
}
// Static Methods.
public static void Initialize(string company)
{
Company = company;
}
}
public class Reg
{
public static string Root = $@"Software\{Enterprise.Company}";
// ctor.
static Reg()
{
// Assertion failed when this constructor is …Run Code Online (Sandbox Code Playgroud) 我的应用程序使用2.0.在将来的某个时候,我可能想要开始使用在以后的框架版本中添加的更新功能.我应该等到那时候吗?或者现在更新到最新的.NET 3.5是否有优势?
我想,当我准备好迎接明年春天的4.0版本时,它将会被淘汰.也许我应该坚持使用2.0以获得我的秋季版本并为我的客户节省高清空间并安装另一个框架版本的时间?
背景:我在Windows XP和Windows PosReady 2009 PC上运行了基于.Net 3.5 WPF"Prism"的应用程序.该应用程序运行在每晚关闭的PC上(通过C#调用"shutdown.exe")并在早上启动(通过局域网唤醒).该应用程序是基于触摸的(使用ELO触摸屏),没有连接鼠标或键盘,用户无法访问Windows.
问题:我们偶尔会发现两件事之一发生的问题; 要么应用程序似乎没有正确加载,我们看到一个空白的白色表单显示,或它停止响应触摸.通过查看我们的(log4net)日志,我们可以看到我们仍在处理触摸事件并在两种情况下都将其记录下来.通常这在切换视图时会出现,我们也会在日志中看到Prism RegionManager正在删除并适当添加视图.
故障排除:应用程序使用Clonezilla应用的图像在约100台PC上运行,这种情况只是偶尔发生.由于它并未在所有PC上发生,并且在事件查看器中没有记录任何异常或任何指示问题,因此我们采用了更多的PC和操作系统级修复程序.具体来说,我们尝试重新启动应用程序和PC偶尔短期成功 - 这意味着有时应用程序将在重新启动后正常运行,但最多只能持续几个小时.我们也假设应用程序已经被破坏,我们已经删除并重新安装它,但没有成功.
似乎解决该问题的唯一方法是使用提供的.Net 3.5 SP1安装程序包修复.Net框架.
结论:由于这似乎解决了这个问题,当没有别的事情发生时,我们似乎在某种程度上破坏了GAC的框架DLL - 无论是通过代码还是PC上的启动/关闭程序.
问题:这导致了许多问题:
谢谢你的帮助.
我刚刚在F#中编译这段代码时遇到了框架版本之间行为的变化:
let test = Lazy.CreateFromValue 1
Run Code Online (Sandbox Code Playgroud)
针对.NET framework 2.0编译,表达式导致"已创建"的Lazy对象,即:
test.IsValueCreated = true
Run Code Online (Sandbox Code Playgroud)
在针对.NET framework 4.0编译时,表达式会产生一个"未评估"的惰性对象,即:
test.IsValueCreated = false
Run Code Online (Sandbox Code Playgroud)
只有在后一种情况下访问test.Value之后,两者才是等价的.
我无法在任何地方找到任何关于这种变化的参考,因此我的问题是为什么这种变化表现不同以及变化背后的原因是什么(它正在破裂).在我看来,.NET 2.0中的行为更有意义 - 从具体值创建一个Lazy对象应该导致"已经评估"的惰性对象.
我的公司有一个用ASP.NET构建的网站,目标是.NET 3.5.它过于庞大和庞大,无法及时转换为.NET 4.我的任务是建立一个票务系统.我希望这个票务系统与主应用程序完全独立.我在网站上添加了一个名为"TicketingSystem"的目录,然后在IIS中我使用面向.net 4.0的应用程序池将此文件夹设置为应用程序.我假设这个应用程序不会受到它上面的应用程序的影响,特别是因为它使用自己的应用程序池,但似乎它会以某种方式受到影响.使用我的.net 4 Web应用程序导航到此目录会生成此错误:
http://www.chevtek.com/content/error.jpg
我介绍了文件路径和内容等敏感信息,但是说配置文件的行有父应用程序配置文件的路径,而不是.net 4应用程序的配置文件.
任何信息表示赞赏.是不是可以在.net 3.5应用程序中嵌套.net 4.0应用程序?
编辑这里要求的是IIS目录结构的屏幕截图.
我对 .NET 领域有点陌生。
所有这些都有很大的困惑,我真的无法弄清楚。我搜索了很多,但找不到任何简单直接的 .NET 解释(也指所有其他不同版本的名称,如标题中所示)
所以我的问题是为什么 .NET 有不同的名称(正如我在标题中所写的)。哪一个适合谁?