Windows phone 7 尝试从WP7解决方案的命令行使用MSBuild
我正在尝试使用MSBuild从命令行构建WP7解决方案文件(该解决方案文件在VS中构建得非常好)。到目前为止,我有以下几点:Windows phone 7 尝试从WP7解决方案的命令行使用MSBuild,windows-phone-7,msbuild,pre-build-event,Windows Phone 7,Msbuild,Pre Build Event,我正在尝试使用MSBuild从命令行构建WP7解决方案文件(该解决方案文件在VS中构建得非常好)。到目前为止,我有以下几点: msbuild Test.WP7.sln /t:rebuild /p:OutputPath="bin\Release" /p:Platform="Any CPU" /p:Configuration="Release" 我遇到的问题是安装所需的任何NuGet软件包的预构建步骤,该工具是通过与解决方案文件不同的相对目录引用的: ..\Tools\NuGet\nuget in
msbuild Test.WP7.sln /t:rebuild /p:OutputPath="bin\Release" /p:Platform="Any CPU" /p:Configuration="Release"
我遇到的问题是安装所需的任何NuGet软件包的预构建步骤,该工具是通过与解决方案文件不同的相对目录引用的:
..\Tools\NuGet\nuget install $(ProjectDir)packages.config -o $(SolutionDir)Packages
现在,从命令行运行时,MSBuild找不到此目录,并返回一个MSB3073错误,如:
“C:\Work\test\trunk\test\test.WP7.sln”(重建目标)(1)->
“C:\Work\test\trunk\test\test.Core.View.ViewModel\test.Core.View.ViewModel.csproj”(重建目标)(4)->
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(902,9):错误MSB3073:命令“.\Tools\NuGet\NuGet安装c:\Work\test\trunk\test\test.Core.View.ViewModel\packages.config-o c:\Work\test\trunk\test\packages”已退出,代码为3。[C:\Work\test\trunk\test\test.Core.View.ViewModel\test.Core.View.ViewModel.csproj]
您知道如何在不更改项目或解决方案文件的情况下解决此问题吗?不要使用NuGet的相对路径。而是使用
$(SolutionDir)
变量,如下所示:
<Target Name="BeforeBuild">
<Exec Condition="Exists('$(ProjectDir)packages.config')"
Command=""$(SolutionDir)Tools\nuget.exe" install "$(ProjectDir)packages.config" -o "$(SolutionDir)Packages"" />
</Target>
但您将其指定为相对于生成位置。因此,除非您在正确的文件夹中构建,否则它不会工作。改用$(SolutionDir)\..\Tools\NuGet\NuGet.exe
。但也就是说,您应该将nuget.exe工具作为解决方案的一部分,而不是作为一项全球资产!在我更改使用“$(SolutionDir)…\Tools”的路径后排序