csproj / msbuild是否可以将文件包含为可选内容?

时间:2016-07-22 23:47:34

标签: msbuild continuous-integration msdeploy csproj

我的应用程序中有一个可选的配置文件,用于特定于实例的配置。应用程序在没有它的情况下工作,只有在您想要配置一些附加功能时才需要它。因此,它不应该包含在源代码管理中,因为每个开发人员和客户端部署都不需要它,并且那些人将拥有不同的值。

我在确定如何为持续部署配置它时遇到问题。我可以在构建服务器上生成文件而不会出现问题。 但是,由于MsDeploy读取csproj以确定要部署哪些文件,因此我的csproj必须跟踪此文件以实际移动到部署服务器。 如果我的csproj跟踪了它,那么它就不再是可选的了,我无法在没有它的情况下构建应用程序。我使用的Mercurial没有提交一个版本忽略后续功能(git' s --assume-unchanged)所以选项在这方面看起来非常有限。我非常坚信,应该可以克隆一个回购并立即运行项目,所以我真的不喜欢那些无法构建的东西。

csproj文件中是否有一种方法可以指示文件是否应作为内容包含在内,否则会被忽略?

1 个答案:

答案 0 :(得分:4)

如果这是目录中唯一的.config文件,那么您可以手动编辑.csproj文件以通过文件掩码引用您的文件:

<ItemGroup>
    <Compile Include="*.config"/>
</ItemGroup>