【发布时间】:2019-08-01 14:43:18
【问题描述】:
我的设置是:我有一个包含不同 dotnet4.6 应用程序(服务)的解决方案。现在我们在这个解决方案中添加了一个 dotnet core 项目。我可以构建和调试它,但这不会创建可执行文件。在 Visual Studio 中,我可以右键单击 -> 发布...。我创建了两个配置文件(x86 和 x64),它们应该在 /bin/Publish/x86 或 /x64 中创建好的二进制文件。在 VS 这工作。该应用程序是独立的,可以在不同的未准备好的机器上运行。
但现在我需要将该进程移至构建服务器。我搞砸了dotnet publish,但最后我被卡住了,因为解决方案的其他组件不是干净的 dotnet 核心,因此构建失败。
所以我需要坚持使用 MSBuild。
目前的尝试是:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" NewProject\NewProject.csproj /p:DeployOnBuild=true /p:UsePublishProfile=true /p:PublishProfile=x64Profile.
这表示它已成功完成构建,但我没有看到任何结果。如果我删除所有属性并只调用 msbuild 和 *.csproj,它也没有任何区别。它只是在 bin/Debug 中构建新项目,作为 dll,而不是 exe。
我也搞砸了p:PublishProfile="NewProject\Properties\PublishProfiles\x64Profile.pubxml" 和/p:PublishUrl="NewProject\bin\Publish\x64",但它并没有改变任何东西。
我读了几篇关于 SO 的文章,告诉我 VS 不只是使用参数调用 msbuild,而是进行内部 API 调用。不过,我需要一个解决方案。我需要构建服务器来创建可执行文件。有没有办法触发 msbuild 来创建那个?
【问题讨论】: