Visual studio 2017 Mac上的Visual Studio 2017:;KillProcess“;未为task指定所需参数“0”的值;ImagePath“;(MSB4044)

Visual studio 2017 Mac上的Visual Studio 2017:;KillProcess“;未为task指定所需参数“0”的值;ImagePath“;(MSB4044),visual-studio-2017,Visual Studio 2017,我的同事刚刚通过以下链接安装了Visual Studio 2017 for Mac:。安装完所有内容后,他试图构建Asp.Net MVC项目,但出现以下错误: 其他人都使用Windows,所以我们以前从未见过这个问题。但是,我想我已经找到了根本原因:DotNetCompilerPlatform.props的WebProjectOutputDir为空,但我还无法验证这一点 <KillProcess ProcessName="VBCSCompiler" ImagePath="$(WebPro

我的同事刚刚通过以下链接安装了Visual Studio 2017 for Mac:。安装完所有内容后,他试图构建Asp.Net MVC项目,但出现以下错误:

其他人都使用Windows,所以我们以前从未见过这个问题。但是,我想我已经找到了根本原因:DotNetCompilerPlatform.props的
WebProjectOutputDir
为空,但我还无法验证这一点

<KillProcess ProcessName="VBCSCompiler" ImagePath="$(WebProjectOutputDir)" /> 

是否可以手动设置
WebProjectOutputDir
,或者至少在Mac上查看其值?为什么这是Mac上的问题而不是Windows上的问题


我四处寻找了其他答案,但没有发现它们有用/相关。

虽然可以在Mac上构建.NET核心应用程序(因为它是跨平台的),但不可能在Mac上构建.NET framework应用程序(因为它是特定于Windows的)


因此,我的同事应该为开发人员找到一台Windows计算机。

可能不是最好的方法,但以下过程对我有效:

单击错误打开文件:Microsoft.codeDom.Providers.DotNetCompilerPlatform.props 在此文件中,替换第20行

<KillProcess ProcessName="VBCSCompiler" ImagePath="$(WebProjectOutputDir)" />


这个答案解决了我的问题

显然,Travis Ci从xbuild切换到msbuild作为默认构建平台。目前,msbuild平台仅在基于UNIX的系统上不完全支持标准.NET项目.NET核心


因此,一个临时的解决方法是重新配置项目以使用xbuild进行构建。

Mono在运行.Net代码时走了很长的路,但是有很多问题。对于这个,编辑您的csproj文件并将其添加到
部分之一:

<WebProjectOutputDir Condition="$(WebProjectOutputDir) == '' AND $(OS) == 'Unix' ">./</WebProjectOutputDir>
<!-- Hack for the fact that Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8/build/net45/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props references $WebProjectOutputDir  -->
/
我在下面的链接中列出了其他问题

参考资料


真可惜(当我看到MAC版本时,我非常有希望。MAC版本中有一个项目类型为ASP.Net Web App(MVC)。因此我们应该能够运行它。我看起来有一个bug,他们还没有解决它。我创建了一个目录C:\temp\RoslynTemp并工作了。
<WebProjectOutputDir Condition="$(WebProjectOutputDir) == '' AND $(OS) == 'Unix' ">./</WebProjectOutputDir>
<!-- Hack for the fact that Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8/build/net45/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props references $WebProjectOutputDir  -->