是否可以仅为特定项目自动启动 WCF?
Is it possible to auto-start a WCF for only specific projects?
我有一个 WCF 项目,其他几个项目依赖该项目,但其他项目(如单元测试项目和其他支持实用程序)不需要该服务。它在 .csproj 文件中包含以下 XML:
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{3D9AD99F-2412-4246-B90B-4EAA41C64699}">
<WcfProjectProperties>
<AutoStart>True</AutoStart>
</WcfProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
有没有办法让“自动启动项目服务”功能仅适用于解决方案中的特定项目?或者是全有还是全无?有什么我可以添加到其他项目以告诉他们他们依赖于此服务以使其在调试会话中自动启动的内容吗?或者在服务的.csproj中添加一些条件,取决于当前启动项目是哪个项目?
我尝试在不同的地方使用 Condition="'$(Configuration)' == 'Debug'" 进行试验,但我无法根据该 Configuration 变量使其表现不同。
要使客户端应用程序可调试,请创建一个新的小型项目并将服务和客户端应用程序设置为依赖项。它应该包含的唯一文件是 Program.cs,它的唯一功能应该如下所示:
[STAThread]
static void Main(string[] args)
{
new System.ServiceModel.ServiceHost(typeof(MyServiceClass)).Open();
MyClientApplication.Program.Main(args);
}
然后将两者的 app.config 合并为这个微型应用程序的单个 app.config。但现在服务与客户端托管在同一个进程中,它们可以互换调试。
这允许从服务中删除自动启动功能,但仍然 运行 客户端应用程序和服务。
我有一个 WCF 项目,其他几个项目依赖该项目,但其他项目(如单元测试项目和其他支持实用程序)不需要该服务。它在 .csproj 文件中包含以下 XML:
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{3D9AD99F-2412-4246-B90B-4EAA41C64699}">
<WcfProjectProperties>
<AutoStart>True</AutoStart>
</WcfProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
有没有办法让“自动启动项目服务”功能仅适用于解决方案中的特定项目?或者是全有还是全无?有什么我可以添加到其他项目以告诉他们他们依赖于此服务以使其在调试会话中自动启动的内容吗?或者在服务的.csproj中添加一些条件,取决于当前启动项目是哪个项目?
我尝试在不同的地方使用 Condition="'$(Configuration)' == 'Debug'" 进行试验,但我无法根据该 Configuration 变量使其表现不同。
要使客户端应用程序可调试,请创建一个新的小型项目并将服务和客户端应用程序设置为依赖项。它应该包含的唯一文件是 Program.cs,它的唯一功能应该如下所示:
[STAThread]
static void Main(string[] args)
{
new System.ServiceModel.ServiceHost(typeof(MyServiceClass)).Open();
MyClientApplication.Program.Main(args);
}
然后将两者的 app.config 合并为这个微型应用程序的单个 app.config。但现在服务与客户端托管在同一个进程中,它们可以互换调试。
这允许从服务中删除自动启动功能,但仍然 运行 客户端应用程序和服务。