Luk*_*ett 9 c# asp.net azure portable-class-library
站点在本地运行良好,但从Windows Azure网站托管环境抛出此.
CS0012:类型'System.Object'在未引用的程序集中定义.您必须添加对程序集'System.Runtime,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用
所以这是一个臭名昭着的消息,并有一个已知的解决方案;
<compilation ... >
<assemblies>
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</assemblies>
</compilation>
Run Code Online (Sandbox Code Playgroud)
我知道ASP.NET页面/视图是在不同的时间编译到控制器和其他逻辑,(vNext最终将解决这个问题),并且上面是为页面编译方面添加了一个引用.
但我的问题是:为什么这可以在我的开发机器上工作但需要在WAWS环境中进行额外的配置,你认为这是完美的设置?
我想知道什么是不同的,目标环境中缺少什么,以便引用可移植的库(便携式,意味着它应该在各种环境中"正常工作")实际上打破了东西.
而且,为什么当我引用PCL时,System.Object突然在Mscorlib中找不到.曾几何时我曾经理解这一切,然后一切都让人困惑.
PCL 引用system.runtime.dll,而不是mscorlib.dll,并且当asp.net 编译您的视图页面时,它不会添加对system.runtime.dll 的引用。在您的情况下,C# 编译器会抛出错误。但不知道为什么这个问题只发生在 WAWS 环境上。