如何创建包含链接文件的Visual Studio项目模板?

问题描述

| 在Visual Studio 2010中,我要创建一个项目模板,该模板包含指向系统上应存在的两个文件的链接。其中之一是通用的AssemblyInfo.cs文件。另一个是强名称密钥文件(* .snk)。 我需要这些引用是相对的,因为每个开发人员的工作区将设置为不同的。项目模板是否可能以某种方式弄清楚这些文件在每个开发人员环境中的位置? 通过阅读有关模板的信息,听起来好像它们是静态的,所以我想知道是否可以做一些技巧来做这样的事情。如果没有别的,我可以添加伪造的引用,这些伪造的引用会导致编译错误,并迫使开发人员将这些文件挂入。但是,如果我能为他们做的话,那会更好。     

解决方法

您应该在vstemplate中将CreateInPlace属性设置为
true
。该文件说   指定是创建项目并在指定位置执行参数替换,还是在临时位置执行参数替换,然后将项目保存到指定位置。 如果要使用相对路径,则需要在创建项目的位置而不是在临时位置进行参数替换。     ,Microsoft已经确认这是扩展性模型和项目模板的错误。我设法使用IWizard解决了这个问题。我在IWizard实现的RunFinished方法中添加了以下代码:
    //Get linked file directory
    string coreDir = Path.GetDirectoryName(MyProject.FullName);

    //Data folder
    ProjectItem propertiesProjectItem = slSharedProject.ProjectItems.Cast<ProjectItem>().Where(p => p.Name == \"Data\").First();
    propertiesProjectItem.ProjectItems.AddFromFile(coreDir + @\"\\Service\\TheFileIWantToLink.cs\");
此代码将TheFileIWantToLink.cs文件的副本链接到我的共享Silverlight项目(slSharedProject)。     ,您可以尝试将向导集成到项目模板中,然后将路径设置为链接文件。如果我没记错的话,您不必创建用户界面;您只需要在replacesDictionary中指定正确的替换,VS将替换模板文件中的值。有关更多信息,请参见此内容。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...