2013-12-14 101 views
2

我開發了一個visual studio 2010插件,它可以在TFS工作項上執行自定義任務(通過按鈕單擊&上下文菜單)。爲2010和2012開發和部署visual studio插件

插件與2010年的工作正常。現在的要求是使其與VS 2012(和可能爲未來版本)兼容。

下面是引用,

tfs references

的插件不VS 2012年工作,如果我在.addin文件更新主機值並嘗試加載它,團隊資源管理器崩潰/或插件不起作用。通過研究發現,VS 2012的參考文獻(程序集,Microsoft.visualstudio.Teamfoundation.*.dll)都是在.Net 4.5中編譯的。

如果我升級的解決方案,升級的參考和設定的目標框架.NET 4.5,該插件適用於2012年VS然而,預期不會在2010年VS所以現在我有工作

兩個具有相同源代碼但具有不同目標框架& VS版本的項目。

的問題是:

我怎樣纔能有效地管理源代碼,我不想讓兩組源文件。將來很難維護。

如何部署它們。由於VS 2012不支持簡單的部署,我使用了wix。一個wix項目現在被添加到每個解決方案,並且MSI工作正常。但是這會使兩個不同的安裝程序。我怎樣才能使它成爲這兩個版本(以及可能的未來版本)的一個安裝程序?

回答

0

使用一個項目並基於項目配置具有條件引用。在您的項目中添加新配置(例如,TFS2010和TFS2012)。然後在項目文件的XML中添加基於配置的引用。

<Choose> 
<When Condition="'$(Configuration)' == 'TFS2010'"> 
    <ItemGroup> 
    <Reference Include="Microsoft.TeamFoundation.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    <Reference Include "... any other needed TFS references" /> 
    </ItemGroup> 
</When> 
<When Condition="'$(Configuration)' == 'TFS2012'"> 
    <ItemGroup> 
    <Reference Include="Microsoft.TeamFoundation.Client, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    <Reference Include "... any other needed TFS references" /> 
    </ItemGroup> 
</When> 
</Choose> 

當您在Visual Studio中更改配置時,將加載正確的引用。有關條件構建的更多信息可在MSDN上找到。

相關問題