2013-02-22 122 views
2

我有一個web應用程序項目,我正試圖遷移到.NET 4.5。我們正在將TFS構建到安裝了VS2010的構建服務器上,但它也包含VS2012的所有正確引用程序集,並安裝了.NET 4.5框架。單元測試項目失敗正在運行v11的BuildShadowTask

當運行包含私人存取單元測試項目,構建失敗,錯誤 -

System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\LocalPath\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll' 

但是,如果我改變$(MSBuildExtensionsPath)\微軟\ VisualStudio的\生成會成功V11.0 \ TeamTest \ Microsoft.TeamTest.Targets從

<UsingTask TaskName="BuildShadowTask" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v11.0\TeamTest\Microsoft.VisualStudio.TestTools.BuildShadowsTask.dll"/> 

文件

<UsingTask TaskName="BuildShadowTask" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\TeamTest\Microsoft.VisualStudio.TestTools.BuildShadowsTask.dll"/> 

VS2012不再可以使用私人訪問器嗎?如果是這樣,爲什麼Microsoft.VisualStudio.TestTools.BuildShadowsTask.dll v11失敗,但v10成功?

編輯這將在實際上已安裝VS2012的機器上編譯,所以這是一個事實,我錯過了程序集或註冊表項。查看構建日誌,在這兩種情況下,它都從v11文件夾加載BuildShadowTask。我想我的問題改變了,是否可以在不安裝Visual Studio 2012的情況下使用私有訪問器?如果是這樣,我需要做出什麼改變才能實現這一目標?

回答

1

私有訪問器在VS2012中已被棄用,因此您將無法使用VS2012創建私有訪問器。這是11.0 dll任務失敗的原因。建議的替代方法是使用PrivateObject類或InternalsVisibleTo屬性。

+0

我編輯了這個問題。它看起來像我_can_使用MSBuild時生成計算機已安裝Visual Studio 2012,它使用相同的程序集。必須有一些我錯過的東西。 – Steve 2013-02-25 14:18:01

相關問題