我正在使用TeamCity構建並部署到我們的演示站點。我們有一個名爲HTML Demo Site的配置,其中一個構建步驟是使用NAnt將HTML部署到網站。如何解決在TeamCity中創建FileSet的NAnt錯誤?
構建文件定義了一個目標:
<target name="deploy-html" description="Deploys the HTML to the demo server">
<echo message="Deploying HTML to the demo server..."/>
<copy todir="\\<server>\<dir>\<client>" includeemptydirs="true" overwrite="true">
<fileset basedir="..\html\_master">
<include name="**\*"/>
<exclude name="node_modules\**"/>
</fileset>
</copy>
</target>
每次我運行TeamCity的構建,它的失敗與此錯誤:
C:\tc\w\9149e011dfa8657d\build_scripts\website.build(27,14):
[NAnt output] Error creating FileSet.
[NAnt output] The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
所以,我想在PowerShell中運行以獲得超過最大長度的文件列表:
Get-ChildItem -Recurse | Where-Object {$_.FullName.Length -gt 248}
但是,返回的唯一文件是文件un在node_modules目錄中。但在構建文件中,它被排除在外。所以我不確定還有什麼可以看的?有任何想法嗎?
1.你有沒有您的構建機器上運行PowerShell的? 2. node_modules文件夾是否直接位於_master文件夾下?如果不將排除條件更改爲「**/node_modules/*」。 3.團隊城市正在構建服務器「C:\ tc \ w \ 9149e011dfa8657d \ build_scripts」 – Isaiah4110
上爲文件夾名稱添加一個長ID。1.我在本地計算機和構建計算機上都運行了PowerShell。 2. node_modules目錄位於_master目錄下。其他:我也在兩臺機器上本地運行NAnt腳本。在我的本地機器中,NAnt忽略了預期的node_modules目錄。在構建機器中,NAnt腳本忽略排除條件幷包含導致錯誤的node_modules目錄。 – TimAlonso
兩臺機器上的同一版本的NANT?如果是的是哪個版本?我會在我的機器上測試這個,讓你知道一點。 – Isaiah4110