类型或命名空间名称“事务”在命名空间“系统”中不存在

这是一个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。