我需要调用exec并构建一个wix安装包项目。
目前在我的TFSbuild.proj文件中有以下内容:
<PropertyGroup>
<WebRoot>$(DropLocation)\Latest\x86\Release\_PublishedWebsites\Web</WebRoot>
<DBRoot>$(DropLocation)\Latest\x86\Release\Database</DBRoot>
</PropertyGroup>
<PropertyGroup>
<Msbuildexe>"msbuild"</Msbuildexe>
<Configuration>"/p:Configuration:"Release""</Configuration>
<DefineConstants>" /p:DefineConstants:"WebRoot=$(WebRoot);DBRoot=$(DBRoot)""</DefineConstants>
<WixSolution>"$(MSBuildProjectDirectory)\Setup\Setup.sln"</WixSolution>
</PropertyGroup>
<Message Text="Bulding setup solution" />
<Message Text="$(Msbuildexe) $(Configuration) $(DefineConstants) $(WixSolution)" />
<Exec Command="$(Msbuildexe) $(Configuration) $(DefineConstants) $(WixSolution)" />
我尽可能地简化了这个命令,以免混淆引号的位置。当我运行它时,调试消息(倒数第二个命令)输出:
"msbuild" "/p:Configuration:"Release"" "/p:DefineConstants:"WebRoot=\server\drops\app\Installer Build\Latest\x86\Release_PublishedWebsites\Web;DBRoot=\server\drops\app\Installer Build\Latest\x86\Release\Database"" "f:\builds\app\Installer Build\BuildType\Setup\Setup.sln"
然后我在日志中得到以下错误:
'"msbuild"' 不是内部或外部命令,可执行的程序或批处理文件。 f:\builds\app\Installer Build\BuildType\TFSBuild.proj(538,5): error MSB3073: 命令 ""msbuild" "/p:Configuration:"Release"" "/p:DefineConstants:"WebRoot=\server\drops\app\Installer Build\Latest\x86\Release_PublishedWebsites\Web;DBRoot=\server\drops\app\Installer Build\Latest\x86\Release\Database"" "f:\builds\app\Installer Build\BuildType\Setup\Setup.sln"" 已退出,代码为 9009。
我不确定是否由于无法从命令行调用 msbuild 命令还是引号问题导致的。如果是因为我无法像这样从命令行调用 msbuild,那么我该如何引用它?是否有一个指向它的属性?
Exec
MSBuild 而不是只添加一个 MSBuild 任务? - Filburt