C# 是否有办法确保visual studio解决方案中的特定visual studio项目仅构建在生成服务器(或特定服务器)上

C# 是否有办法确保visual studio解决方案中的特定visual studio项目仅构建在生成服务器(或特定服务器)上,c#,.net,visual-studio,continuous-integration,xamarin-studio,C#,.net,Visual Studio,Continuous Integration,Xamarin Studio,基本上,我想阻止开发人员在只有构建服务器才能/应该构建的解决方案中构建其中一个项目 或者,开发人员会有一个包含项目a、B、C但不包含项目D的解决方案。但是,构建服务器会将项目D添加到解决方案中。然后用项目A、B、C和D构建解决方案 这可以通过代码和/或配置完成吗 谢谢不太感谢-如果代码可用,它可以由开发人员构建。例如,可以从源代码创建项目文件,并将其构建为能够调试代码 您可以使用NuGet导入预构建的程序集—这样您就不鼓励在本地构建此类代码 注意:请确保您了解希望在本地生成代码的原因-调试是非常

基本上,我想阻止开发人员在只有构建服务器才能/应该构建的解决方案中构建其中一个项目

或者,开发人员会有一个包含项目a、B、C但不包含项目D的解决方案。但是,构建服务器会将项目D添加到解决方案中。然后用项目A、B、C和D构建解决方案

这可以通过代码和/或配置完成吗


谢谢

不太感谢-如果代码可用,它可以由开发人员构建。例如,可以从源代码创建项目文件,并将其构建为能够调试代码

您可以使用NuGet导入预构建的程序集—这样您就不鼓励在本地构建此类代码


注意:请确保您了解希望在本地生成代码的原因-调试是非常常见的原因,降低调试经验会降低团队的速度。

可能的解决方案之一是创建不同的代码。每个构建配置将包括正确运行所需的项目

简化示例:

开发人员可以使用默认的
Debug
配置来构建项目A、B和C(D必须从该配置中排除)以在本地运行应用程序

生产
配置将包括所有项目(A、B、C和D),您的持续集成系统将使用该配置构建您的解决方案


请记住其他人所说的,只要项目D位于同一解决方案中,您就无法保护它不受手动或意外构建的影响

您的“项目”是一组包含代码的纯文本文件。你到底该如何防止开发人员在任何地方复制这些代码?从理论上讲,你可以开发一个完整的密码系统,加密你的源代码和密码编译器,动态解密源代码,并根据正确的密钥进行编译。但我怀疑你会这么做。如果你不想让他们能够构建它,不要让他们访问源代码管理,他们将无法构建它。@EugeneSh。您不需要走那么远,只需给开发人员已经编译好的代码(构建在构建服务器上),而不是源代码。@Servy因为这是一个XY问题-是。您可以创建一个命令行make文件,并在make文件中添加限制。