我可以使用TargetFileName将文件放在Visual Studio模板中的目录中吗?

时间:2012-07-18 18:43:54

标签: visual-studio templates

我有一个带有基类的.cs文件,我希望在许多项目中使用它。我首先将这个cs文件放在项目文件夹上(在.sln旁边)。然后,在项目中,我改变了

<Compile Include="BaseClass.cs">

<Compile Include="..\BaseClass.cs">

这样可行,然后文件图标会有一个快捷箭头。


当我想将项目导出为项目模板时,问题出现了。 BaseClass不会包含在模板中,因为它位于项目文件夹之外。我已经尝试将BaseClass.cs添加到模板zip并添加
<ProjectItem ReplaceParameters="true" TargetFileName="..\BaseClass.cs">BaseClass.cs</ProjectItem>
到MyTemplate.vstemplate,但我收到错误:
A target file name within the VSTemplate file is invalid, it contains a fully qualified path
如果我删除..\,则会直接包含该文件。 如果我将<ProjectItem>从.vstemplate文件中删除,只需将<Compile Include="..\BaseClass.cs">放入模板中的.csproj文件中,它就会在Users/me/AppData/Local...中查找该文件。

如何让模板引用项目目录外的文件?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:-1)

您应该在VSTemplate中而不是在项目中进行文件夹的映射。 VS不会在模板中进行任何操作。

一个例子就是这样。下面将把文件从“ InnerFolder”复制到根目录。

<Folder Name="InnerFolder" TargetFolderName="." >
    <ProjectItem ReplaceParameters="true" TargetFileName="Web.config">Web.config</ProjectItem>
</Folder>