是否可以仅为特定项目自动启动WCF



我有一个WCF项目,其他几个项目都依赖它,但其他项目,如单元测试项目和其他不需要服务的支持实用程序。它在.csproj文件中包含以下XML:

<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{3D9AD99F-2412-4246-B90B-4EAA41C64699}">
<WcfProjectProperties>
<AutoStart>True</AutoStart>
</WcfProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>

有没有办法得到";项目自动启动服务;仅适用于解决方案中特定项目的功能?还是全有还是全无?我是否可以向其他项目添加任何内容,告诉他们他们依赖此服务,使其在调试会话中自动启动?或者在服务的.csproj中添加一些条件,该条件取决于当前启动项目是哪个项目?

我试着用Condition="$(配置("=="调试";在不同的地方,但我无法让它根据配置变量表现出不同的行为。

要使客户端应用程序可调试,请创建一个新的小型项目,并将服务和客户端应用程序设置为依赖项。它应该包含的唯一文件是Program.cs,它唯一的函数应该是这样的:

[STAThread]
static void Main(string[] args)
{
new System.ServiceModel.ServiceHost(typeof(MyServiceClass)).Open();
MyClientApplication.Program.Main(args);
}

然后将两者的app.config合并为这个小型应用程序的单个app.config。但是现在服务托管在与客户端相同的进程中,并且它们可以互换地进行调试。

这允许从服务中删除AutoStart功能,但仍然可以将客户端应用程序与服务一起运行。

最新更新