我目前正在編寫一個msbuild腳本來構建我一直在努力的解決方案,以及運行其測試。在我的開發機器上,這可以按預期工作。但是,當我嘗試在構建服務器上運行相同的構建腳本時,出現了幾個故障。我跟蹤了問題的根源,因爲我的構建腳本似乎試圖運行與我的應用程序關聯的.exe文件。腳本執行過程中,該行放倒我了,因爲它並不在我的dev的盒子運行該命令:爲什麼MSBuild嘗試運行它正在構建的項目?
MSIAuthoring:
Building MSI
"C:\Program Files (x86)\Jenkins\workspace\Test Build\BuildArtifacts\MsiBuildTool.exe" "/MBSBUILD:MsiBuildTool"
我是相當新建立的腳本,但我的理解是,構建腳本不應該試圖運行我的程序,除非我明確地告訴它這樣做。有誰知道可能是什麼原因造成的?
供參考,這是我的構建腳本:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="RunTests"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<BuildArtifactsDir Include="BuildArtifacts\"/>
<SolutionFile Include="MsiBuildTool.sln"/>
<NUnitConsole Include="C:\Program Files (x86)\NUnit 2.6.4\bin\nunit-console.exe"/>
<UnitTestsDll Include="BuildArtifacts\MsiBuildToolUnitTests.dll"/>
<TestResultsPath Include="BuildArtifacts\TestResults.xml"/>
</ItemGroup>
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
<Platform Condition="'$(Platform)' == ''">Any CPU</Platform>
</PropertyGroup>
<Target Name="Init" DependsOnTargets="Clean">
<MakeDir Directories="@(BuildArtifactsDir)"/>
</Target>
<Target Name="Clean">
<RemoveDir Directories="@(BuildArtifactsDir)"/>
</Target>
<Target Name ="Compile" DependsOnTargets="Init">
<MSBuild Projects="@(SolutionFile)"
Targets ="Build"
Properties ="OutDir=%(BuildArtifactsDir.FullPath);Configuration=$(Configuration);Platform=$(Platform)"/>
</Target>
<Target Name="RunTests" DependsOnTargets="Compile">
<Exec Command='"@(NUnitConsole)" @(UnitTestsDll) /[email protected](TestResultsPath)'/>
</Target>
</Project>
更新: 通過輸出一些挖後,我發現,「MSIAuthoring」的步驟是維克斯#庫,我的結果使用。 https://wixsharp.codeplex.com/discussions/644609# 我通過刪除這一行,我的.csproj文件禁用MSIAuthoring步:由於此線程描述
<Import Project="..\packages\WixSharp.1.0.22.3\build\WixSharp.targets" Condition="Exists('..\packages\WixSharp.1.0.22.3\build\WixSharp.targets')" />
啓用診斷日誌記錄,你會看到。 –