我有一个大型“产品”,它被部署为一组zip文件(分为Web应用程序,Web服务,数据库,工具等)。
我目前使用MSBuild从VSS收集文件,构建,压缩和复制到网络共享。我正在转向TFS,而其他所有项目类型都构建良好,我试图找到一种方法将数据库安装脚本从源代码控制中删除,并有效地将它们复制到自己文件夹中的放置位置(用于压缩)。
我尝试创建一个带有'空C#项目'的解决方案文件(带有一个assemblyInfo类,以避免'无源'警告),所有脚本和支持文件都标记为内容,并且“始终复制”但文件只是没有出现在drop文件夹中。这些文件确实按照我想要的方式在本地构建,但是当通过TFS构建时它不起作用。
我想知道是否还有其他方法可以做我需要的东西 - 我受限于拥有DB脚本(即没有转换为MSI)。我搜遍了我能想到的所有地方,但却画了一片空白!
TIA,Simes。
答案 0 :(得分:1)
将文件标记为资源并始终设置为副本。
答案 1 :(得分:1)
您是否考虑为此编写自己的msbuild项目?然后,您可以将符合条件的所有文件复制到$(outdir)文件夹。
这些方面应该有所帮助:
<Project DefaultTargets="CopySqlScripts">
<Target Name="CopySqlScripts">
<ItemGroup>
<SqlScripts Include="$(MSBuildProjectDirectory)\*.sql" />
</ItemGroup>
<Copy SourceFiles="@(SqlScripts)" DestinationFolder="$(OutDir)\SqlRelease" />
</Target>
</Project>
答案 2 :(得分:1)
感谢大家的关注,结果发现我使用的csproj文件存在问题。
我创建了一个全新的项目(C#库),只是添加了几个文件 - 将它们标记为内容和始终复制,然后它们落在了drop文件夹中。
它有点快速和肮脏,但我会添加一个post build事件来删除虚假dll,一旦我确定它全部工作:)