MSBuild错误:MSBUILD:错误MSB1009:项目文件不存在。

4

我对MSBuild环境非常陌生,在尝试构建我正在工作的某个应用程序时,我正在遵循一些指令。通过按照应用文档中写的指令,我成功地构建了一个命令,它看起来像下面这样:

msbuild /t:Harvest;WIX setup.build;  /P:publish_location="C:\Installer";product_file="C:\Temp\ServiceHost.dll";product_id="1.0"

但是当我运行该命令时,会抛出以下错误:
MSBUILD:错误 MSB1009:项目文件不存在。
这引发了很多问题:
1. 这里没有名为Project的参数。我不确定为什么它在特定参数上失败了?
2. “/t:Harvest;WIX”是什么意思?
3. 通常,msbuild命令是指.sln或.csproj文件,但我参考的文档要求我特别参考.Dll文件,所以我这样做是否正确?
4. 我该如何解决这个错误?
仅供参考,以下是我参考的文档:
此解决方案仅包括安装程序。为了手动创建带有此解决方案的MSI,您需要启动Visual Studio命令提示符,导航到Installer项目的setup.build位置,并键入以下命令:(其中发布位置被替换为当前发布位置,product_id被替换为当前product_id,product_file是您想要从中提取版本的文件)msbuild /t:Harvest;WIX setup.build /p:publish_location="location";product_file="Matchbox.Management.ServiceHost.dll";product_id="xxxxxxxxxxxx"

1
wkl的回答很好地描述了每个msbuild命令的含义。尝试更新您的命令为msbuild /t:Harvest;WIX /p:publish_location="C:\Installer";product_file="C:\Temp\ServiceHost.dll";product_id="1.0" setup.build,确保setup.build在您运行命令的cmd提示符(或其他任何您正在使用的工具)的工作目录中。 - Brian Sutherland
@ CoffeeBean,根据wkl的回答和Brian Sutherland的评论,这个问题怎么样了?您能否告诉我关于这个问题的最新信息? - Leo Liu
1个回答

4

来自MSBuild命令行参考

MSBuild.exe [Switches] [ProjectFile]

所以,setup.build是你的项目文件(似乎找不到)。

/target:targets

在此项目中构建这些目标。使用分号或逗号分隔多个目标,或单独指定每个目标。也可以接受/t参数。

因此,

/t:Harvest;WIX

这意味着你正在构建项目文件中定义的目标HarvestWIX

/property:name=value

设置或覆盖项目级别的属性,其中name是属性名称,value是属性值。使用分号或逗号分隔多个属性,或单独指定每个属性。也可以使用/p

因此,

/P:publish_location="C:\Installer";product_file="C:\Temp\ServiceHost.dll";product_id="1.0"

这里简单定义了三个属性,可以在您的MsBuild项目中用于任何目的。我们无法确定您这样做是否正确,但根据您的文档似乎是可以的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接