Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 我可以使用TargetFileName将文件放置在Visual Studio模板中的目录中吗?_Visual Studio_Templates - Fatal编程技术网

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

Visual studio 我可以使用TargetFileName将文件放置在Visual Studio模板中的目录中吗?,visual-studio,templates,Visual Studio,Templates,我有一个带有基类的.cs文件,我想在许多项目中使用它。我首先将这个cs文件放在项目文件夹上方(沿着.sln)。然后,在项目中,我改变了 到 这是可行的,文件图标会有一个小的快捷箭头 当我想将项目导出为项目模板时,问题就出现了。基类不包含在模板中,因为它位于项目文件夹之外。我已尝试将BaseClass.cs添加到模板zip并添加 BaseClass.cs 到MyTemplate.vstemplate,但我得到错误: VSTemplate文件中的目标文件名无效,它包含完全限定的路径 如果我删除

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



这是可行的,文件图标会有一个小的快捷箭头


当我想将项目导出为项目模板时,问题就出现了。基类不包含在模板中,因为它位于项目文件夹之外。我已尝试将BaseClass.cs添加到模板zip并添加
BaseClass.cs

到MyTemplate.vstemplate,但我得到错误:
VSTemplate文件中的目标文件名无效,它包含完全限定的路径

如果我删除
。\
,它将直接包含该文件。 如果我将
放在.vstemplate文件之外,而将
放在模板的.csproj文件中,它将在
用户/me/AppData/Local…
中查找该文件


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

这是一个Microsoft尚未解决的已知问题:

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

举个例子。下面的示例将文件从“InnerFolder”复制到根目录

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

Web.config

我找不到的论坛帖子。谢谢我知道它还没有为VS2012修复,但碰巧知道它是否已为VS2013修复?是的,不幸的是,它与VS2013相同。我正在为这个问题制定解决方案。关键的想法是为模板项目创建一个向导。这个链接也很有趣:FWIW它在VS2017中不是固定的,我可以在VS2017中复制同样的内容。