是否可以使用mono
或msbuild
(或其他一些我不知道的解决方案)将C#代码编译为二进制 for Windows 在Linux上
这些C#项目通常包含以下文件:
.cs
.csproj
.config
.manifest
应用配置示例:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0.30319" sku=".NETFramework,Version=v4.0" />
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
示例.csproj
(摘录):
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<TargetZone>Internet</TargetZone>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Deployment" />
<Reference Include="System.Web" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
免责声明:我真的不太了解Windows。如果这是 Simply Not Possible™,我可以使用Windows VM作为最后的手段。
答案 0 :(得分:0)
在linux上,您应该只使用mono命令运行程序集。 mono app.exe。不需要交叉编译。 (啊点击一次运行的好处)
但是,如果你的意思是AOT编译或mkbundle,那么使用linux机器会更容易。
除非你在windows os中依赖于需要找到备选方案或包含配置文件。