我有一个带有基类的.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...
中查找该文件。
如何让模板引用项目目录外的文件?
答案 0 :(得分:0)
这是Microsoft已解决的一个已知问题:https://connect.microsoft.com/VisualStudio/feedback/details/565068/project-template-relative-file-path-does-not-work
答案 1 :(得分:-1)
您应该在VSTemplate中而不是在项目中进行文件夹的映射。 VS不会在模板中进行任何操作。
一个例子就是这样。下面将把文件从“ InnerFolder”复制到根目录。
<Folder Name="InnerFolder" TargetFolderName="." >
<ProjectItem ReplaceParameters="true" TargetFileName="Web.config">Web.config</ProjectItem>
</Folder>