一千萬個為什麽

搜索

在運行時獲取$(SolutionDir)

我已經設法在運行時使用此任務獲取$(SolutionDir)變量:


  


  
    
  


  
    GenerateCode;
    CompileGeneratedCode;
    $(CompileDependsOn);
  

我遇到的問題是,由於任務沒有“輸入”,因此始終構建此項目。這很奇怪,因為它打破了增量編譯。這個項目用於不同的解決方案,我只想在改變解決方案時編譯它。

我嘗試使用Inputs =“$(SolutionPath)。如果你只使用一個解決方案,但是當你從另一個解決方案中使用項目時,sln.cache會被破壞並永遠停止構建任務。無論你是否刪除“輸入”變量。讓它再次運行的唯一方法是刪除.sln.cache文件。

有誰知道任何方法來阻止項目的每次編譯?

編輯:

好。我找到了解決方案:


  
    
  



  



  
    
      True
    
  



  
    GenerateTmpCode;
    GenerateCode;
    CompileGeneratedCode;
    $(CompileDependsOn);
  

有兩個目標。第一個創建一個部分類,其中包含一個臨時文件中帶有$(solutiondir)值的字符串,並將其與當前使用的部分類進行比較。如果有必要,第二個將臨時文件復制到當前文件上。

最佳答案

暫時沒有最佳答案

轉載註明原文: 在運行時獲取$(SolutionDir)