gpt4 book ai didi

c# - Visual Studio C# 项目 : how to place conditional references in . csproj?

转载 作者:行者123 更新时间:2023-11-30 13:51:44 25 4
gpt4 key购买 nike

我正在开发一个开源项目 (Logbus-ng),我需要以一种在 Windows 和 Mono 上的方式实现由控制台应用程序生成的 Web 服务。

目前,感谢 tutorial通过 MSDN 杂志,我在 Windows 上成功地做到了这一点。控制台应用程序可以生成自己的 Web 服务器,并实际向外部打开一个 Web 服务接口(interface)。问题是这在 Mono 中不起作用,合理的原因是 Mono 错误。

与 Mono 开发人员聊天时,他们建议我使用 Mono.XSP 程序集来启用 ASP.NET 管道到控制台应用程序中,因此我想我将使用 web service activator 的不同实现。取决于配置。

现在我的问题是:由于 Mono.XSP 在所有 Mono 发行版的 GAC 中可用(即在 Linux 下使用 xbuild 时)但在 Windows 中不可用,除非有人将它安装到 GAC 中,并且我不想将Mono.XSP与我的软件一起发布,如果他们不需要Mono(即如果在Windows下编译),我也不会强制他们安装Mono,我可以设置对仅当启用 MONO 编译标志时才启用 GAC 中的 Mono.XSP 程序集?启用此标志后,我的代码显然将引用 Mono.XSP 而不是上面链接的教程中介绍的 HttpListenLibrary,并且编译器将正确使用该引用。

提前谢谢你。

最佳答案

使用 MSBuild condition .

例如,假设您的项目有一个名为“DebugMono”的配置,它是通常“Debug”配置的 Mono 版本,只需在检查“Configuration”属性值的适当引用项元素上放置一个条件属性:

<Reference Include="Mono.Xsp" Condition="'$(Configuration)'=='DebugMono'" />

关于c# - Visual Studio C# 项目 : how to place conditional references in . csproj?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4006199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com