类型或命名空间名称“事务”在命名空间“系统”中不存在
这是一个ASP.Net Web应用程序,使用Visual Studio 2013.该解决方案由几个项目组成。 我在using System.Transactions
的库项目中有代码,并且它运行了好几个月。
今天我在Web应用程序项目的代码中using System.Transactions
添加了相同的内容,但它失败并显示以下错误消息:
The type or namespace name 'Transactions' does not exist in the namespace 'System'
以下是我尝试过的一些事情:
- 添加了对
System.Transactions
的引用。 - validation两个项目中引用的dll文件是否相同。
- 将框架从4更改为4.5并返回。
- validation所有项目都使用相同的框架版本。
- 清理并重建解决方案。
- 退出Visual Studio,删除AppData> Local> Temp中的所有文件,重建。
- 重启电脑。
因此,结果是using System.Transactions
在一个项目中工作正常但在另一个项目中工作正常,即使两个项目都在同一个解决方案中。
有什么建议?
编辑:这是一个奇怪的可能没有任何额外的帮助,但这里是:
- 当我构建项目时,没有错误。 也就是说,
using System.Transactions
编译就好了。 - 如果我运行应用程序,它会弹出炸弹并且错误会出现在浏览器窗口中。 VS代码窗口仍然没有显示错误。
- 如果我编辑
using System.Transactions
或添加类似var x = System...
代码,则错误会立即出现在using System.Transactions
。
**编辑:**此问题被标记为重复。 事实并非如此 – 建议的副本通过浏览参考来解决问题。 我已经尝试过了,但没有用。 在我的情况下,我不得不使用“复制本地”选项。
请参阅Mark Hall的答案
为此发布了Microsoft Connect条目 。 有一条评论表明您可以浏览它。 给出的路径是:
C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5 \ System.Transactions.dll
只需通过浏览到此路径添加引用
如果这不起作用,请转到引用 – > System.Transactions,并确保此引用的属性“Copy Local”设置为True。
通常System.Transactions不是您的引用的一部分,尝试通过以下方式将它添加到您的引用中:
如果您使用的是Web应用程序,请右键单击您的引用;如果您使用的是Web站点,请在项目中单击右键。 在.NET引用中找到System.Transactions。 您应该在参考中找到System.Transactions。