2015-08-26 76 views
0

我試圖從相對路徑導入目標文件。目標文件包含版本信息。我們的目標不是要修改我們創建新分支並擁有新程序集版本時所有的數千個項目文件。我們需要程序集版本,因爲系統的兩個版本可以同時安裝,我們在全局程序集緩存中有dll。Visual Studio相對路徑問題與非標準項目擴展

下面是它看起來像在項目文件:

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="..\..\..\..\..\..\Versions.targets" /> 
    ... 
    <ItemGroup> 
     <Reference Include="MyDll, Version=$(VersionAssemblies), Culture=neutral, processorArchitecture=MSIL"> 
      <HintPath>..\..\..\..\..\..\..\..\..\..\Apps\$(CodeVersion)\DEVP\appl\BinApps\MyDll.dll</HintPath> 
     </Reference> 
    </ItemGroup> 
    ... 
</Project> 

這是工作的罰款,如果我有一個.vbproj工作。但問題是我們有很多舊的.cobproj Cobol項目文件。出於某種原因,似乎Visual Studio 2010在打開cobproj時未設置工作目錄,所以無法訪問版本.targets ...

如果我將我的cobproj重命名爲使用vbproj作爲擴展,它正在工作精細。因此,當一個已知擴展的項目打開時,它確實是Visual Studio正在做的事情,但我已經搜索了很多,而且我沒有找到可以添加cobproj的位置,以告訴Visual Studio它是已知的擴展。

另一個有趣的事實是,如果我雙擊我的cobproj,它就會工作,因爲工作目錄已經設置爲cobproj所在的目錄...如果打開Visual Studio,然後執行File /打開並選擇我的cobproj,然後它不起作用。

我想知道如果有人可能知道我如何解決我的問題,而不改變我所有cobproj的擴展。我想要一個更清潔的解決方案。

謝謝!

+0

Hmya,'.. \ .. \ .. \ .. \ .. \ .. \ .. \ .. \ .. \ .. \'是來自地獄的相對路徑。它當然不會工作,除非你重現*精確*文件夾結構,所有10和6層深。最好徹底擺脫這些蜘蛛網。 –

+0

在我的情況下,文件夾結構永遠不是問題的根源。它是公司內部的標準,它由自制工具創建。唯一的問題是起點,工作目錄。這是我需要正確的。 –

回答

0

我發現了一種解決方法,如果我修改.sln中的項目類型Guid,我可以使Visual Studio與我的.cobproj一起工作,就像使用.vbproj一樣,至少在工作目錄設置方面。

從.sln文件:

項目( 「{F184B08F-C81C-45F6-A57F-5ABD9991F28F}」)= 「appsEXCI.Donnees.Containers.Cobol」,「appsEXCI.Donnees.Containers。 Cobol.cobproj「,」{54E1DEC4-8919-40F6-B7BB-C936921B221F}「 EndProject